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:
Hitonabi
2026-07-17 16:59:24 +02:00
parent b26fb40cbc
commit e556dcc853
+8 -4
View File
@@ -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)"