Upgrade-Abbrüche abfangen und das Rauschen filtern
Beim Wechsel der Python-Version wirft dpkg dutzende Zeilen 'unable to delete old directory ... Directory not empty'. Das sind Warnungen — in site-packages liegen noch .pyc-Dateien oder selbst installierte Module. Sie verdecken aber die eine Zeile, auf die es ankommt, und werden deshalb gefiltert. Bricht das Upgrade ab, steckt dpkg meist halb fertig fest und blockiert jede weitere Installation. Beide Skripte versuchen jetzt 'dpkg --configure -a' und 'apt-get -f install', dann das Upgrade erneut, bevor sie aufgeben. Scheitert es weiterhin, nennen sie den Befehl, der den echten Fehler ohne Rauschen zeigt. Dazu eine Platzprüfung im Bootstrap gegen $PREFIX statt gegen /. In Termux zeigt 'df -h' als / die Systempartition mit oft nur zweistelligen MB — die aber nichts mit dem Platz zu tun hat, der Termux zur Verfügung steht. Wer danach geht, diagnostiziert am falschen Datenträger. Der Vulkan-Treiber ist geklärt: mesa-vulkan-icd-freedreno ist verfügbar und steht in der Kandidatenliste bereits an erster Stelle. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+26
-6
@@ -61,14 +61,34 @@ else
|
||||
hinweis "Das dauert und lädt einiges. Es erspart aber genau die Fehler,"
|
||||
hinweis "die sonst erst Stunden später als kaputtes proot-distro auffallen."
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
# --force-confold: vorhandene Konfigurationsdateien behalten, statt mitten im
|
||||
# Lauf eine Rückfrage zu stellen, die niemand beantwortet.
|
||||
if pkg update -y && pkg upgrade -y -o Dpkg::Options::=--force-confold; then
|
||||
|
||||
# Beim Wechsel der Python-Version wirft dpkg dutzende Zeilen
|
||||
# "unable to delete old directory ... Directory not empty". Das sind
|
||||
# Warnungen, keine Fehler: in site-packages liegen noch .pyc-Dateien oder
|
||||
# selbst installierte Module. Sie herauszufiltern ist kein Verstecken —
|
||||
# sie verdecken sonst die eine Zeile, auf die es ankommt.
|
||||
rauschfilter() { grep -viE 'unable to delete old directory|^(Unpacking|Preparing|Selecting) '; }
|
||||
|
||||
# --force-confold: vorhandene Konfiguration behalten, statt mitten im Lauf
|
||||
# eine Rückfrage zu stellen, die niemand beantwortet.
|
||||
pkg update -y 2>&1 | rauschfilter
|
||||
if pkg upgrade -y -o Dpkg::Options::=--force-confold 2>&1 | rauschfilter; then
|
||||
ok "Termux ist aktuell"
|
||||
else
|
||||
warn "Das Upgrade lief nicht sauber durch."
|
||||
hinweis "Weiter geht es trotzdem — aber merken, falls später etwas klemmt."
|
||||
hinweis "Von Hand nachziehen: pkg update && pkg upgrade -y"
|
||||
warn "Das Upgrade brach ab. Versuche zu reparieren …"
|
||||
# Die übliche Ursache ist ein einzelnes Paket, das sich nicht auspacken
|
||||
# ließ. Danach steckt dpkg halb fertig fest und blockiert alles Weitere.
|
||||
dpkg --configure -a 2>&1 | rauschfilter
|
||||
apt-get -f install -y 2>&1 | rauschfilter
|
||||
if pkg upgrade -y -o Dpkg::Options::=--force-confold 2>&1 | rauschfilter; then
|
||||
ok "Nach der Reparatur durchgelaufen"
|
||||
else
|
||||
warn "Bleibt unvollständig."
|
||||
hinweis "Speicherplatz prüfen: df -h \$PREFIX"
|
||||
hinweis "Fehler ohne Rauschen ansehen:"
|
||||
hinweis " pkg upgrade -y 2>&1 | grep -viE 'unable to delete' | tail -20"
|
||||
hinweis "Weiter geht es trotzdem — aber hier ansetzen, falls später etwas klemmt."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user