Venv-Audit: uv-venvs haben kein pip - Inspektion via Audit-venv pip --path
Erstlauf-Befund: mem0-/voice-venvs sind uv-erstellt (kein bin/pip, kein pip-Modul). Das Audit-venv prueft deren site-packages jetzt von aussen (pip list --outdated/--format=freeze --path) - Dienst-venvs bleiben unberuehrt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -39,14 +39,18 @@ CVES_GESAMT=0
|
||||
|
||||
for EINTRAG in "${VENVS[@]}"; do
|
||||
VENV="${EINTRAG%%:*}"; NAME="${EINTRAG##*:}"
|
||||
if [ ! -x "$VENV/bin/pip" ]; then
|
||||
ZEILEN+=("$NAME: venv fehlt unter $VENV — bitte prüfen")
|
||||
# uv-venvs haben KEIN eigenes pip (Befund Erstlauf 17.07.) → das Audit-venv
|
||||
# inspiziert deren site-packages von außen (pip --path); Dienst-venvs bleiben unberührt.
|
||||
SP="$("$VENV/bin/python" -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])' 2>/dev/null || true)"
|
||||
if [ -z "$SP" ] || [ ! -d "$SP" ]; then
|
||||
ZEILEN+=("$NAME: venv fehlt/unlesbar unter $VENV — bitte prüfen")
|
||||
continue
|
||||
fi
|
||||
# Veraltete Pakete (Anzahl reicht fürs Lagebild)
|
||||
ALT_N="$("$VENV/bin/pip" list --outdated 2>/dev/null | tail -n +3 | grep -c '' || echo 0)"
|
||||
ALT_N="$("$AUDIT_VENV/bin/pip" list --outdated --path "$SP" 2>/dev/null | tail -n +3 | grep -c '' || echo 0)"
|
||||
# CVE-Prüfung gegen den eingefrorenen Stand (lokale Pfade/Editables ausfiltern)
|
||||
"$VENV/bin/pip" freeze 2>/dev/null | grep -vE ' @ |^-e |^#' > "$TMP/$NAME.txt" || true
|
||||
"$AUDIT_VENV/bin/pip" list --format=freeze --path "$SP" 2>/dev/null \
|
||||
| grep -vE ' @ |^-e |^#' > "$TMP/$NAME.txt" || true
|
||||
CVE_N=0
|
||||
if [ -x "$AUDIT_VENV/bin/pip-audit" ] && [ -s "$TMP/$NAME.txt" ]; then
|
||||
AUDIT_OUT="$("$AUDIT_VENV/bin/pip-audit" -r "$TMP/$NAME.txt" --progress-spinner off 2>&1 || true)"
|
||||
|
||||
Reference in New Issue
Block a user