Compare commits

...
2 Commits
Author SHA1 Message Date
StefanandClaude Opus 5 95de7b6614 proot-distro 5.5.0: 'already exists' als unkritisch erkennen
Das Gerät läuft proot-distro 5.5.0. Dort gibt es '--installed' nicht mehr, und
die Meldung lautet "container 'debian' already exists" statt 'already installed'
— mein Mustervergleich hätte sie nicht erkannt und wäre in den Fehlerzweig
gelaufen, obwohl alles in Ordnung ist.

Beide Formulierungen werden jetzt abgedeckt. Gegen die tatsächliche Meldung vom
Gerät geprüft.

Die Hinweise zum Nachbessern nennen zusätzlich 'proot-distro reset', das in 5.5.0
der vorgesehene Weg zum Neuaufsetzen ist — mit dem ausdrücklichen Vermerk, dass
dabei die Daten verloren gehen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-10 22:04:15 +02:00
StefanandClaude Opus 5 f20ad44e25 Rootfs am Anmeldeversuch erkennen, nicht an Pfaden
Der zweite Bootstrap-Lauf brach ab, obwohl beim ersten alles stand: proot-distro
hat sein Ablageformat gewechselt — sichtbar an 'Migrating legacy container' —
und danach lag das Rootfs nicht mehr dort, wo meine Prüfung nachsah. Sie meldete
'nicht installiert', die folgende Installation scheiterte an 'already installed',
und der Lauf brach ab. Ein Fehler in der Erkennung, nicht auf dem Gerät.

Geprüft wird jetzt mit 'proot-distro login <distro> -- true'. Das fragt nicht, wo
etwas liegt oder wie eine Ausgabe formatiert ist, sondern ob es funktioniert —
und überlebt damit auch den nächsten Formatwechsel.

Zusätzlich gilt 'already installed' nicht mehr als Fehler: entscheidend ist
allein, ob die Anmeldung danach klappt. Tut sie es nicht, nennt das Skript die
Handgriffe zum Neuaufsetzen, statt nur abzubrechen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-10 22:03:26 +02:00
2 changed files with 41 additions and 9 deletions
+35 -5
View File
@@ -260,13 +260,43 @@ if ! proot-distro list >/dev/null 2>&1; then
ok "proot-distro läuft wieder"
fi
if proot-distro list --installed 2>/dev/null | grep -q "^$DISTRO\b" \
|| [ -d "$PREFIX/var/lib/proot-distro/installed-rootfs/$DISTRO" ]; then
ok "$DISTRO bereits installiert"
# Ob ein Rootfs da ist, wird nicht mehr an Pfaden oder Ausgabeformaten festgemacht:
# proot-distro hat sein Ablageformat gewechselt (erkennbar an der Meldung
# "Migrating legacy container"), und danach lag das Rootfs woanders als erwartet.
# Ein Anmeldeversuch ist die einzige Prüfung, die das nicht betrifft — sie fragt
# nicht, wo etwas liegt, sondern ob es funktioniert.
rootfs_laeuft() { proot-distro login "$DISTRO" -- true >/dev/null 2>&1; }
if rootfs_laeuft; then
ok "$DISTRO bereits installiert und lauffähig"
else
log " Installiere $DISTRO — das dauert einige Minuten."
need proot-distro install "$DISTRO"
ok "$DISTRO installiert"
if proot-distro install "$DISTRO" >>"$LOG" 2>&1; then
ok "$DISTRO installiert"
else
# 'already exists' bzw. 'already installed' ist kein Fehler, sondern ein
# Wettlauf zwischen meiner Prüfung und der Wirklichkeit. Die Wortwahl hat
# sich über die Fassungen geändert (5.5.0 spricht von Containern), deshalb
# werden beide Formulierungen abgedeckt. Entscheidend ist ohnehin allein,
# ob sich danach anmelden lässt.
if grep -qiE 'already (installed|exists)' "$LOG"; then
warn "proot-distro meldet: gibt es bereits"
else
warn "Installation meldete einen Fehler:"
tail -n 12 "$LOG" | sed 's/^/ /'
fi
if rootfs_laeuft; then
ok "Anmeldung funktioniert trotzdem — weiter."
else
fail "Kein lauffähiges $DISTRO-Rootfs."
log ""
log " Von Hand versuchen:"
log " proot-distro list # was ist da?"
log " proot-distro reset $DISTRO # neu aufsetzen, Daten weg"
log " proot-distro remove $DISTRO && proot-distro install $DISTRO"
exit 1
fi
fi
fi
section "Debian-Grundausstattung"
+6 -4
View File
@@ -100,11 +100,13 @@ voraussetzungen_pruefen() {
fi
ok "proot-distro ausführbar"
if proot-distro list --installed 2>/dev/null | grep -q "^$distro\b" \
|| [ -d "$PREFIX/var/lib/proot-distro/installed-rootfs/$distro" ]; then
ok "$distro-Rootfs vorhanden"
# Anmeldeversuch statt Pfad- oder Ausgabeprüfung: proot-distro hat sein
# Ablageformat gewechselt, und danach lag das Rootfs woanders als erwartet.
# Diese Prüfung fragt nicht, wo etwas liegt, sondern ob es funktioniert.
if proot-distro login "$distro" -- true >/dev/null 2>&1; then
ok "$distro-Rootfs lauffähig"
else
fail "$distro-Rootfs fehlt"
fail "$distro-Rootfs fehlt oder startet nicht"
hint "Nachholen mit: bash spike/00-bootstrap-termux.sh"
fehlt=1
fi