diff --git a/provision/init-phone.sh b/provision/init-phone.sh index 44ce604..8dd1fc4 100755 --- a/provision/init-phone.sh +++ b/provision/init-phone.sh @@ -46,12 +46,37 @@ kopf "HPOS — Ersteinrichtung auf dem Telefon" hinweis "Repo: $REPO" [ "$ANONYM" = 1 ] && hinweis "(Benutzername entfernt — gelesen wird anonym)" +# ── Vollupgrade ────────────────────────────────────────────────────────────── +# Muss VOR jedem anderen Paket laufen. Termux verträgt keine Teilupgrades: die +# Pakete werden gegeneinander gebaut, und ein einzeln nachinstalliertes trifft +# sonst auf veraltete Abhängigkeiten. Genau daran ist proot-distro gescheitert — +# es trug die Shebang-Zeile python3.13, während eine andere Fassung installiert war. +# +# Überspringbar mit HPOS_OHNE_UPGRADE=1, etwa bei knappem Datenvolumen. +kopf "Termux auf einen Stand bringen" +if [ "${HPOS_OHNE_UPGRADE:-0}" = 1 ]; then + warn "Übersprungen (HPOS_OHNE_UPGRADE=1)" + hinweis "Bei Problemen mit proot-distro ist das die erste Stelle zum Nachsehen." +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 + 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" + fi +fi + # ── git ────────────────────────────────────────────────────────────────────── kopf "git" if command -v git >/dev/null 2>&1; then ok "bereits vorhanden ($(git --version))" else - pkg update -y >/dev/null 2>&1 if pkg install -y git; then ok "installiert" else fehl "Installation von git fehlgeschlagen"; exit 1; fi fi diff --git a/spike/00-bootstrap-termux.sh b/spike/00-bootstrap-termux.sh index 3a6af05..3cd50d1 100755 --- a/spike/00-bootstrap-termux.sh +++ b/spike/00-bootstrap-termux.sh @@ -23,6 +23,24 @@ try pkg update -y try pkg install -y x11-repo tur-repo try pkg update -y +# Vollupgrade vor allen Einzelinstallationen. Termux verträgt keine Teilupgrades: +# die Pakete werden gegeneinander gebaut, und ein einzeln nachinstalliertes trifft +# sonst auf veraltete Abhängigkeiten. Genau daran ist proot-distro gescheitert. +# init-phone.sh macht das schon; wer direkt hier einsteigt, bekommt es hier. +section "Termux auf einen Stand bringen" +if [ "${HPOS_OHNE_UPGRADE:-0}" = 1 ]; then + warn "Übersprungen (HPOS_OHNE_UPGRADE=1)" +else + export DEBIAN_FRONTEND=noninteractive + # --force-confold: vorhandene Konfiguration behalten, statt mitten im Lauf + # eine Rückfrage zu stellen, die niemand beantwortet. + if try pkg upgrade -y -o Dpkg::Options::=--force-confold; then + ok "Termux ist aktuell" + else + warn "Upgrade lief nicht sauber durch — bei späteren Fehlern hier ansetzen." + fi +fi + # ── Basispakete ────────────────────────────────────────────────────────────── # Einzeln installiert und einzeln protokolliert: Paketnamen wandern in Termux # gelegentlich, und wir wollen wissen, WELCHES Paket fehlt, statt nur dass etwas fehlt.