Eine der bekanntesten Eigenschaften von Debian ist die Fähigkeit, ein installiertes System von einer Stable Veröffentlichung auf die nächste aktualisieren zu können: dist-upgrade – ein wohlbekannter Ausdruck – hat erheblich zum Ansehen des Projekts beigetragen. Mit ein paar Vorkehrungen dauert die Aktualisierung eines Computers zwischen wenigen Minuten bis zu einigen Duzend Minuen, abhängig von der Downloadgeschwindigkeit der Paketquellen.
6.7.1. Empfohlene Vorgehensweise
Da Debian einiges an Zeit zur Weiterentwicklung zwischen den Stable Veröffentlichungen hat, sollten Sie vor einer Aktualisierung die Veröffentlichungshinweise lesen.
In diesem Abschnitt gehen wir auf die Aktualisierung eines Stretch Systems auf Buster ein. Dies ist ein erheblicher Eingriff in ein System, der niemals zu 100 % risikofrei ist und nur nach der Sicherung aller wichtigen Daten unternommen werden sollte.
Eine weitere gute Eigeschaft, die das Aktualisieren erleichtert (und verkürzt), ist das Aufräumen der installierten Pakete und dadurch nur die zu behalten, die wirklich gebraucht werden. Hilfreiche Werkzeuge dazu sind unter anderem
aptitude
,
deborphan
und
debfoster
(siehe
Abschnitt 6.2.7, „Automatisch installierte Pakete nachverfolgen“). Sie können beispielsweise untenstehenden Befehl absetzen und anschließend im interaktiven Modus von
aptitude
die geplanten Aufräumarbeiten genau zu überprüfen und Feineinstellungen vornehmen:
# deborphan | xargs aptitude --schedule-only remove
Nun zur Aktualisierung selbst: Zuerst müssen Sie die Datei /etc/apt/sources.list
anpassen, um APT anzuweisen, die Pakete von Buster anstatt von Stretch zu verwenden. Wenn die Datei ausschließlich Verweise auf Stable statt auf einen expliziten Codenamen enthält, ist diese Änderung nicht einmal nötig, da Stable immer auf die zuletzt veröffentlichte Version von Debian zeigt. In beiden Fällen muss die Datenbank der verfügbaren Pakete aktualisiert werden (mit dem Befehl apt-get update
oder der Schaltfläche "Neu laden" in synaptic
).
Wenn diese Paketquellen einmal registriert sind, sollte man zuerst eine minimale Aktualisierung mit apt upgrade
durchführen. Wenn man die Aktualisierung in zwei Schritten durchführt, erleichtert man die Arbeit der Paket-Verwaltungswerkzeuge und stellt sicher, dass diese in der aktuellsten Version verwendet werden, die möglicherweise die notwendigen bisher aufgelaufenen Fehlerkorrekturen und Verbesserungen beinhalten, um die komplette Aktualisierung der Distribution durchzuführen.
Sobald dieses erste Upgrade abgeschlossen wurde, ist es an der Zeit, das Upgrade selbst durchzuführen, entweder mit apt full-upgrade
, aptitude
oder synaptic
. Sie sollten die vorgeschlagenen Aktionen sorgfältig prüfen, bevor Sie sie anwenden: Sie können vorgeschlagene Pakete hinzufügen oder Pakete abwählen, die nur empfohlen und anerkanntermaßen nutzlos sind. Auf jeden Fall sollte das Frontend ein Szenario entwickeln, das in einem kohärenten und aktuellen Buster-System endet. Dann müssen Sie nur noch warten bis die benötigten Pakete heruntergeladen bis, die debconf-Fragen und möglicherweise die Fragen zu lokal modifizierten Konfigurationsdateien beantworten und sich zurücklehnen, während APT seine Magie wirken lässt.
6.7.2. Problembehandlung nach einer Aktualisierung
Trotz der Anstrengungen der Debian-Betreuer verläuft eine größere Systemaktualisierung nicht immer so problemlos, wie man es sich wünschen würde. Neue Softwareversionen könnten inkompatibel zu ihren Vorgängern sein (beispielsweise, weil sich Standardverhaltensweisen oder Datenformate geändert haben). Auch könnten sich Fehler durch die, jeder Debian Veröffentlichung vorangehende, Testphase hindurch gemogelt haben.
Um solche Probleme vorwegzunehmen, können Sie das Paket apt-listchanges installieren, welches Informationen über mögliche Probleme zu Beginn jeder Paketaktualisierung einblendet. Diese Informationen werden von den Paketbetreuern zusammen- und in /usr/share/doc/Paket/NEWS.Debian
Dateien zum Nutzen der Anwender bereitgestellt. Das Lesen dieser Dateien (möglicherweise mittels apt-listchanges) sollte helfen, Sie vor bösen Überraschungen zu bewahren.
Manchmal werden Sie feststellen, dass die neue Version einer Software überhaupt nicht funktioniert. Das passiert allgemein bei Applikationen, die nicht besonders populär und deshalb nicht ausgiebig genug getestet sind. Eine Aktualisierung in letzter Minute kann zu Regressionsfehlern führen, die erst nach der Veröffentlichung erkannt werden. In beiden Fällen ist der erste Schritt, einen Blick in die Fehlerdatenbank unter
https://bugs.debian.org/package
zu werfen, um zu prüfen, ob das Problem bereits gemeldet wurde. Wenn dies der Fall ist, wird es auch vor Beginn des Upgrades aufgelistet, wenn Sie
apt-listbugs installiert haben. Falls nicht, sollten Sie es mittels
reportbug
melden. Falls das Problem bereits bekannt ist, ist der Fehlerbericht in Verbindung mit den verknüpften Meldungen üblicherweise eine exzellente Informationsquelle zu dem Fehler:
in anderen Fällen könnten andere Anwender bereits eine Übergangslösung für das Problem gefunden und ihre Erkenntnisse in den Antworten zum Fehlerbericht geteilt haben;
und in wieder anderen Fällen könnte der Paketbetreuer bereits ein korrigiertes Paket gebaut und veröffentlicht haben.
Abhängig von der Schwere eines Fehlers kann eine neue Paketversion speziell für die nächste Ausgabe der Stable Veröffentlichung vorbereitet werden. Sollte dies der Fall sein, wird das korrigierte Paket im Bereich
proposed-updates
der Debian Spiegelserver bereitgestellt (siehe
Abschnitt 6.1.2.3, „Proposed Updates“). Der entsprechende Eintrag kann dann temporär der Datei
sources.list
hinzugefügt werden. Aktualisierte Pakete können mit
apt
oder
aptitude
installiert werden.
Manchmal ist das korrigierte Paket nicht in diesem Bereich verfügbar, weil es noch von den Stable-Release-Betreuern geprüft werden muss. Sie können auf deren Webseite prüfen, ob dies der Fall ist. Dort aufgeführte Pakete sind noch nicht verfügbar, aber wenigstens wissen Sie, dass der Veröffentlichungsprozess läuft.
6.7.3. Aufräumen nach einem Upgrade
APT sorgt in der Regel für ein sauberes Upgrade, indem es neue und aktualisierte Abhängigkeiten einzieht oder Pakete entfernt, die Konflikte verursachen. Aber selbst wenn es ein so großartiges Werkzeug ist, kann es nicht alle Aufgaben abdecken, mit denen Benutzer und Administratoren nach einem Upgrade konfrontiert werden, da sie eine menschliche Entscheidung erfordern.
6.7.3.1. Aus dem Debian-Archiv entfernte Pakete
Manchmal entfernen die Debian-FTP-Master Pakete aus dem Debian-Archiv, weil sie veröffentlichungskritische Fehler enthalten, von ihrem Upstream-Autor oder ihrem Paketbetreuer aufgegeben wurden oder einfach das Ende ihrer Lebensdauer erreicht haben. In diesem Fall wird ein neueres Debian-Release das Paket nicht mehr ausgeliefern. Um alle Pakete zu finden, die keine Paketquellen haben, verwenden Sie den Befehl apt-show-versions
:
$
apt-show-versions | grep "Keine verfügbare Version"
Ein ähnliches Ergebnis kann durch aptitude search ~o
erzielt werden. Wenn die gefundenen Pakete nicht mehr benötigt werden, sollten sie aus dem System entfernt werden, da sie nicht mehr wegen kritischer oder sicherheitsbezogener Fehler aktualisiert werden.
6.7.3.2. Dummy- und Übergangspakete
Manchmal kann es notwendig sein, dass ein Paket einen neuen Namen erhält. In diesem Fall wird oft das alte Paket als (fast) leeres Paket beibehalten, wird vom neuen Paket abhängig gemacht und es werden nur die obligatorischen Dateien in
/usr/share/doc/Paket/
installiert. Solche Pakete werden als "Dummy"- oder "Übergangs"-Pakete bezeichnet. Wenn der verantwortliche Paketbetreuer auch den Abschnitt dieses Pakets in
oldlibs
geändert hat, dann können Werkzeuge wie
aptitude
,
deboprhan
oder
debfoster
(siehe Seitenleiste
ALTERNATIVE deborphan
und debfoster
) diese Pakete aufgreifen und ihre Entfernung vorschlagen.
Leider gibt es derzeit keine narrensichere Methode, um sicherzustellen, dass diese Pakete von den oben genannten Werkzeugen automatisch entfernt oder ausgewählt werden. Eine Möglichkeit zu überprüfen, ob das System noch einige dieser Pakete installiert hat, besteht darin, die Paketbeschreibungen der installierten Pakete durchzusehen und dann die Ergebnisse zu überprüfen. Achten Sie darauf, die Ergebnisse nicht für die automatische Entfernung einzuplanen, da diese Methode zu falsch positiven Ergebnissen führen kann:
$
dpkg -l | grep ^ii | grep -i -E "(transition|dummy)"
6.7.3.3. Alte oder unbenutzte Konfigurationsdateien
Wenn das Upgrade erfolgreich war, kann es sein, dass eine Konfigurationsdatei für cruft vorliegt, entweder von dpkg (siehe
Abschnitt 5.2.3, „Checksummen, Liste der Konfigurationsdateien“), ucf oder von entfernten Paketen. Letztere können
bereinigt werden, indem
apt autoremove --purge
verwendet wird. Die Konfigurationsdateien, die von
dpkg oder
ucf während des Aktualisierungsprozesses behandelt wurden, haben einige Gegenstücke mit einem speziellen Suffix hinterlassen (z.B.
.dpkg-dist
,
.dpkg-old
,
.ucf-old
). Die Verwendung der Befehle
find
oder
locate
kann helfen, sie aufzuspüren. Wenn sie nicht mehr von Nutzen sind, können sie gelöscht werden.
6.7.3.4. Dateien, die keinem Paket gehören
Die Debian-Richtlinie verlangt, dass Pakete keine Dateien hinterlassen, wenn sie bereinigt werden. Die Verletzung dieses Prinzips ist ein ernster Fehler und Sie werden ihm nur selten begegnen. Wenn doch, melden Sie ihn; und wenn Sie neugierig sind, können Sie das Paket cruft oder cruft-ng verwenden, um Ihr System auf Dateien zu überprüfen, die keinem Paket gehören.