Aus einem anderen Thema, dass allerdings hier Auswirkung hat:
kB schrieb:
NurNochDebianUser schrieb:
[…] der Wiki-Beitrag Upgrade (Abschnitt „Problemloesungen-nach-fehlgeschlagenen-Upgrades“) empfiehlt nach fehlgeschlagenen Upgrades die Verwendung von
sudo dpkg --configure -a
sudo apt-get -f install
sudo apt-get update && sudo apt-get dist-upgrade
Vielen Dank für den Hinweis auf einen kapitalen Fehler im Wiki! Ich habe das korrigiert.
Die vorletzte Änderung dieses Artikels widerspricht der jahrelangen Erfahrung der Community und dem gemeinsam diskutierten und ausgearbeiteten Arbeitsfluss.
apt-get upgrade darf per Definition nur Pakete aktualisieren, die weder die Installation neuer Pakete, noch das Entfernen bereits installierter Pakete erfordern. Gerade bei einem ReleaseUpgrade ist sowohl das eine, wie auch das andere erforderlich.
Als ein Beispiel greife ich das von fleet_street angesprochene Jahr-2038-Problem auf. Es werden Bibliotheken ausgetauscht und erhalten den Zusatz „t64“ im Paketnamen. Technisch ist das ein neues Paket. Also muss das alte entfernt und das neue installiert werden. Wie soll das gehen, wenn man dies nicht zulässt?
Wenn das Upgrade in einer späten Phase abbricht, mag die Reparatur so funktionieren, aber bei einem Abbruch in einer frühen Phase funktioniert es definitiv nicht. Nach apt-get upgrade befindet sich das System in einer inkonsistenten Schwebe zwischen alten und neuen Paketen.
Zumindest muss man den Anwender darauf hinweisen und dringendst die anschließende Nutzung der Aktualisierungsverwaltung anraten, damit die den Rest erledigt. Warum man das allerdings nicht mehr im Terminal mittels apt-get dist-upgrade in einem Aufwasch erledigen soll, ist leider unbegründet.
Es gibt zwar noch den sinnvollen Schalter „--with-new-pkgs“, aber kein „--allow-remove“. Damit ist man auf die Verwendung von apt-get dist-upgrade angewiesen, weil dies genau der Definition entspricht.
Ich stimme ja zu, dass man im normalen Arbeitsalltag kein apt-get dist-upgrade benötigt, aber gerade bei der Reparatur eines ReleaseUpgrades auf diesen Helfer zu verzichten, erinnert doch zu sehr an den Spruch von dem Teufel und dem Bezelbub.
sudo apt-get upgrade # ohne Netz sinnlos
Auch die pauschale Behauptung, dass es ohne Netz sinnlos sei, würde ich nicht unterschreiben. Es kommt einerseits drauf an, an welchem Punkt das Upgrade gescheitert ist, und andererseits, ob das reproduzierbare Problem durch ein Paket verursacht wurde, für das in der Zwischenzeit eine korrigierte Fassung behoben wurde. Letzteres wäre zwar ein mögliches, aber doch eher unwahrscheinliches – oder sagen wir mal äußerst seltenes – Szenario. Dabei gehe ich aber auch davon aus, dass die Reparatur binnen Stunden versucht und nicht Tag, Wochen oder gar Monate aufgeschoben wird.
Da aber nun alle Pakete für das Upgrade bereits heruntergeladen wurden, bevor mit deren Installation begonnen wurde, befinden sich noch im Zwischenspeicher. Die Reparatur kann in den meisten Fällen also auch ohne Netz gelingen. Die alte Fassung, dass man ohne Netz auf apt-get update verzichtet, hatte durchaus Sinn.