Product SiteDocumentation Site

6.7. Von einer Stable Distribution auf die nächste aktualisieren

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 this section, we will focus on upgrading a Bullseye system to Bookworm. This is a major operation on a system; as such, it is never 100% risk-free, and should not be attempted before all important data has been backed up.
Another good habit which makes the upgrade easier (and shorter) is to tidy your installed packages and keep only the ones that are really needed. Helpful tools to do that include aptitude, deborphan, debfoster, and apt-show-versions (see Abschnitt 6.2.7, „Automatisch installierte Pakete nachverfolgen“). For example, you can use the following command, and then use aptitude's interactive mode to double check and fine-tune the scheduled removals:
# deborphan | xargs aptitude --schedule-only remove
Now for the upgrading itself. First, you need to change the /etc/apt/sources.list file to tell APT to get its packages from Bookworm instead of Bullseye. If the file only contains references to Stable rather than explicit codenames, the change isn't even required, since Stable always refers to the latest released version of Debian. In both cases, the database of available packages must be refreshed with the apt update command or the refresh button in synaptic (Abschnitt 6.2.1, „Initialisierung“).
Once these new package sources are registered, you should first do a minimal upgrade with apt upgrade et al. as described in Abschnitt 6.2.3, „Das System aktualisieren“. By doing the upgrade in two steps, we ease the job of the package management tools and often ensure that we have the latest versions of those, which might have accumulated bugfixes and improvements required to complete the full distribution upgrade.
Once this first upgrade is done, it is time to handle the upgrade itself, either with apt full-upgrade, aptitude, or synaptic (Abschnitt 6.7, „Von einer Stable Distribution auf die nächste aktualisieren“). You should carefully check the suggested actions before applying them: you might want to add suggested packages or deselect packages which are only recommended and known not to be useful. In any case, the frontend should come up with a scenario ending in a coherent and up-to-date Bookworm system. Then, all you need is to do is wait while the required packages are downloaded, answer the debconf questions and possibly those about locally modified configuration files, and sit back while APT does its magic.

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.
You might sometimes find that the new version of a software doesn't work at all. This generally happens if the application isn't particularly popular and hasn't been tested enough; a last-minute update can also introduce regressions which are only found after the stable release. In both cases, the first thing to do is to have a look at the bug tracking system at https://bugs.debian.org/package, and check whether the problem has already been reported. If this is case, it will be also listed before the upgrade begins if you have apt-listbugs installed. If it hasn't, you should report it yourself with reportbug. If it is already known, the bug report and the associated messages are usually an excellent source of information related to the bug:
  • manchmal existiert bereits ein Patch und ist im Fehlerbericht verfügbar. Sie können dann die korrigierte Version des defekten Pakets lokal übersetzen (siehe Abschnitt 15.1, „Ein Paket aus seinen Quellen neu erstellen“);
  • 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

Sometimes the Debian ftpmasters remove packages from the Debian archive, because they contain release critical bugs, were abandoned by their upstream author or their package maintainer, or simply reached their end of life. In this case, a newer Debian release does not ship the package anymore. To find all packages, which do not have a package source, use the apt-show-versions command:
$ 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)"
Da das neue Paket als Abhängigkeit des Übergangspakets eingezogen ist, wird es normalerweise als automatisch installiert markiert und könnte zur Entfernung eingeplant werden, wenn Sie versuchen, das Übergangspaket von Ihrem System zu bereinigen. In diesem Fall können Sie einen der beiden in den Seitenleisten TIPP Entfernen und installieren in einem Durchgang und Abschnitt 6.2.7, „Automatisch installierte Pakete nachverfolgen“ beschriebenen Ansätze verwenden, um das Übergangspaket selektiv zu entfernen.

6.7.3.3. Alte oder unbenutzte Konfigurationsdateien

If the upgrade was successful, there might be some configuration file cruft, either from dpkg (see Abschnitt 5.2.3, „Checksums, List of Configuration Files, et al.“), ucf or from removed packages. The latter can be purged by using apt autoremove --purge. The configuration files that were handled by dpkg or ucf during the upgrade process have left some counterparts with a dedicated suffix, e.g. .dpkg-dist, .dpkg-old, .ucf-old. Using the find or locate command can help to track them down. If they are no longer of any use, they can be deleted.
Be aware that a purge also removes the data created with a particular package (e.g. database files, docker volumes and containers, etc.). There should always be backups in place in case data gets removed accidentally.

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.