Startseite TheWayIdo

Debian 12 (Bookworm) auf Debian 13 (Trixie) upgraden

In-Place-Upgrade ohne Neuinstallation

Diese Anleitung beschreibt ein In-Place-Upgrade von Debian 12 "Bookworm" auf Debian 13 "Trixie". Dabei bleibt die bestehende Installation erhalten; das System wird nicht neu installiert. Ein In-Place-Upgrade ist grundsätzlich der von Debian dokumentierte Weg für ein Upgrade von der vorherigen Debian-Version. Debian unterstützt und dokumentiert für Trixie insbesondere den direkten Upgrade-Pfad von Debian 12 (Bookworm).
Für ältere Debian-Versionen sollte zunächst auf Bookworm und anschließend auf Trixie aktualisiert werden.
Eine Neuinstallation ist selbstverständlich ebenfalls möglich und kann bei stark veränderten oder über Jahre gewachsenen Systemen die sinnvollere Alternative sein.
Wichtig: Vor dem Upgrade sollte unbedingt ein funktionierendes Backup vorhanden sein. Außerdem sollte die offizielle Debian-Dokumentation vor Beginn gelesen werden.

Alternativ zum Upgrade von Debian eine Neuinstallation.

Vorab die Referenzen von debian.org

Debian ist genial

1. Voraussetzungen

Vor dem Upgrade sollte das vorhandene Debian 12 (Bookworm) vollständig aktualisiert werden.

Zunächst die Paketquellen aktualisieren:

# apt update

Anschließend Bookworm vollständig aktualisieren:

# apt full-upgrade

Danach sollte das System auf dem aktuellen Stand von Debian 12 (Bookworm) sein. Die Release Notes von Debian gehen ebenfalls davon aus, dass das bestehende Bookworm-System vor dem eigentlichen Releasewechsel auf den aktuellen Stand gebracht wird.

2. Backup erstellen

Ein Release-Upgrade sollte niemals ohne aktuelles Backup durchgeführt werden.
Debian empfiehlt insbesondere die Sicherung von:

  • /etc
  • /var/lib/dpkg
  • /var/lib/apt/extended_states
  • dem Paketstatus

Daten im /home -Directory, oder anwendungsspezifische Daten sollten auf externe Speichermedien gesichert werden.

Beispiel für ein Backup von /etc:

# mkdir -p /home/backup/etc/$(date +%Y%m%d)
# cp -av /etc /home/backup/etc/$(date +%Y%m%d)/
# chmod o-rwx /home/backup

Den Paketstatus sichern:

mkdir -p /home/backup/pakete_$(date +%Y-%m-%d)
dpkg --get-selections '*' \
> /home/backup/pakete_$(date +%Y-%m-%d)/dpkg-selections.txt

Die manuell installierten Pakete dokumentieren:

apt-mark showmanual \
> /home/backup/pakete_$(date +%Y-%m-%d)/manuell-installierte-pakete.txt

Zusätzlich kann der komplett installierte Paketbestand einschließlich Version dokumentiert werden:

dpkg-query -W -f='${binary:Package}\t${Version}\n' | sort -u \
> /home/backup/pakete_$(date +%Y-%m-%d)/installierte-pakete-und-versionen.txt

Die von Debian empfohlenen Paketstatusdateien können zusätzlich direkt gesichert werden:

cp -a /var/lib/dpkg /home/backup/
cp -a /var/lib/apt/extended_states /home/backup/

Falls aptitude verwendet wird, sollte auch dessen Paketstatus gesichert werden:

# cp -a /var/lib/aptitude/pkgstates /home/backup/

3. Fremdpakete und Drittanbieter-Repositories prüfen

Drittanbieter-Repositories sind eine häufige Ursache für Probleme bei einem Releasewechsel.
Vor dem Upgrade sollten daher insbesondere folgende Quellen überprüft werden:

  • Debian Multimedia
  • Docker
  • Wine
  • externe Hersteller-Repositories
  • PPAs beziehungsweise andere Fremdquellen
  • selbst erstellte oder lokal installierte Pakete

Drittanbieter-Repositories sollten während des Releasewechsels deaktiviert werden.

Die klassische /etc/apt/sources.list

Bei älteren APT-Konfigurationen befinden sich die Quellen beispielsweise in:

$ cat /etc/apt/sources.list

Zusätzliche Quellen können unter

$ ls -l /etc/apt/sources.list.d/

liegen.

Das neue DEB822-Format von Debian-13

Neuere Debian-Installationen verwenden häufig Dateien mit der Endung:

.sources

beispielsweise:

/etc/apt/sources.list.d/debian.sources

Bei einer solchen Datei kann ein Fremdrepository beispielsweise durch

Enabled: no

deaktiviert werden.

Drittanbieterquellen sollten nicht einfach mit sed von 'bookworm' auf 'trixie' umgestellt werden.
Zunächst muss geprüft werden, ob der jeweilige Anbieter überhaupt ein Repository für Debian 13 / Trixie bereitstellt. Also Vorsicht!

# sed -i 's/bookworm/trixie/g' /etc/apt/sources.list

4. Debian-Quellen auf Trixie vorbereiten

Für das eigentliche Upgrade müssen die Debian-Quellen auf Trixie zeigen.
Eine klassische Konfiguration könnte beispielsweise so aussehen:

deb http://deb.debian.org/debian/ trixie main contrib non-free-firmware non-free deb-src http://deb.debian.org/debian/ trixie main contrib non-free-firmware non-free deb http://security.debian.org/debian-security trixie-security main contrib non-free-firmware non-free deb-src http://security.debian.org/debian-security trixie-security main contrib non-free-firmware non-free deb http://deb.debian.org/debian/ trixie-updates main contrib non-free-firmware non-free deb-src http://deb.debian.org/debian/ trixie-updates main contrib non-free-firmware non-free #deb https://www.deb-multimedia.org trixie main non-free

www.deb-multimedia.org in diesem Beispiel ist bereits als Fremdquelle deaktiviert.

Bei aktuellen Debian-Installationen sollte die von Debian dokumentierte DEB822-Konfiguration verwendet werden.
Debian dokumentiert für Trixie beispielsweise /etc/apt/sources.list.d/debian.sources mit deb.debian.org und security.debian.org.

Wichtig: Nicht nur /etc/apt/sources.list prüfen. Auch sämtliche Dateien unter /etc/apt/sources.list.d/ müssen kontrolliert werden.

Vor dem Upgrade dürfen keine aktiven Debian-Quellen mehr auf 'bookworm' zeigen.

5. Paketstatus überprüfen

Vor dem Releasewechsel empfiehlt sich eine Kontrolle des aktuellen Paketstatus.
Aktuelle Debian-Version anzeigen: $cat /etc/debian_version

Nicht vollständig konfigurierte Pakete suchen:

$ dpkg --audit

Gehaltene Pakete anzeigen:

$ apt-mark showhold

APT-Quellen und deren Prioritäten prüfen:

$ apt-cache policy

Auch die folgenden Pakete können auf lokale oder nicht mehr verfügbare Installationen hinweisen:

$ apt list --installed 2>/dev/null | grep -i local

Oder:

apt list '?narrow(?installed, ?not(?origin(Debian)))'

Obsolete Pakete können beispielsweise mit

$ apt list '?obsolete'

angezeigt werden.
Alternativ:

aptitude search '~o'

Die gefundenen Pakete sollten vor einer Entfernung einzeln geprüft werden.
Ein Paket kann beispielsweise aus einem Fremdrepository stammen, inzwischen aber durch ein Debian-Paket ersetzt worden sein. Deshalb sollte man nicht blind alle als "obsolete" angezeigten Pakete löschen.

6. Debian-Multimedia und andere Fremdpakete

Wenn beispielsweise 'Debian Multimedia' verwendet wird, kann nach entsprechenden Paketen gesucht werden:

$ apt list --installed 2>/dev/null | grep -i dmo

Auch die Paketquelle eines einzelnen Pakets lässt sich mit

apt-cache policy PAKETNAME

überprüfen. Alternativ kann man sich für mehrere Pakete die verfügbaren Versionen und Quellen anzeigen lassen.
Fremdpakete, die für den Betrieb des Systems nicht benötigt werden, sollten vor dem Releasewechsel möglichst entfernt werden.

Beispiel:

apt purge PAKETNAME

Nach der Deinstallation nicht mehr benötigte Abhängigkeiten entfernen:

# apt autoremove --purge

Konfigurationsreste bereits entfernter Pakete können beispielsweise mit

$ dpkg -l | grep '^rc'

Diese können anschließend gezielt bereinigt werden.

7. Festplattenplatz prüfen

Ein Releasewechsel kann eine große Anzahl von Paketen herunterladen und installieren.
Deshalb sollte vor dem Upgrade ausreichend freier Speicher vorhanden sein:

$ df -h / /var /boot

Wer gerne und öfter den belegten Platz seines System untersucht installiert einfach 'ncdu'.

$ sudo apt update && sudo apt install ncdu

Dann:

$ ncdu /

Beenden mit 'q'

Dabei insbesondere auf folgende Dateisysteme achten:
/
/var
/boot

Falls /boot eine eigene Partition ist, muss auch dort ausreichend freier Speicher vorhanden sein und sollte mindestens 768 MB groß sein und etwa 300 MB freien Speicher haben!

Den voraussichtlichen Platzbedarf für das Upgrade kann APT simulieren:

# apt -o APT::Get::Trivial-Only=true full-upgrade

APT zeigt dabei unter anderem an, wie viele Archive heruntergeladen werden und wie viel zusätzlicher Speicher benötigt wird.

8. Vorbereitende Prüfungen

Vor dem eigentlichen Releasewechsel sollte zunächst ein erneutes Update der Paketinformationen durchgeführt werden:

# apt update

Danach kann das geplante Upgrade simuliert werden:

apt full-upgrade --simulate

oder kurz:

apt full-upgrade -s

Die Ausgabe sollte sorgfältig geprüft werden.
Besonders kritisch sind:

  • eine große Anzahl zu entfernender Pakete
  • Entfernung wichtiger Desktop-Pakete
  • Entfernung von Netzwerkkomponenten
  • Entfernung des Kernels
  • ungelöste Abhängigkeiten
  • Pakete aus Fremdquellen
  • gehaltene Pakete

Bei unerwarteten Paketentfernungen sollte das Upgrade zunächst nicht durchgeführt werden.

9. Eigentliches Upgrade auf Debian 13 "Trixie"

Wenn die vorherigen Prüfungen ohne Probleme abgeschlossen wurden, kann das Upgrade durchgeführt werden.
Debian empfiehlt als Paketverwaltungswerkzeug für den Releasewechsel apt.

Zunächst:

# apt update

Bei Systemen mit proprietären Grafiktreibern, insbesondere NVIDIA-Treibern, sollte vor dem Upgrade geprüft werden, ob der verwendete Treiber und die installierten NVIDIA-Pakete in Trixie verfügbar und unterstützt sind.

Möchte man sich per ssh und screen mit dem System verbinden, ist das eine gute Idee welche ich aber hier nicht beschreibe!

So nun der erste Upgrade-Schritt:

# apt upgrade --without-new-pkgs

Anschließend das vollständige Upgrade:

# apt full-upgrade

Ein 'full-upgrade' kann während des Releasewechsels neue Pakete installieren und nicht mehr benötigte oder inkompatible Pakete entfernen.

Während des Upgrades können Rückfragen zu Konfigurationsdateien auftreten. Bei änderungen an Konfigurationsdateien sollte geprüft werden, ob die lokal angepasste Version oder die vom Paketbetreuer bereitgestellte neue Version verwendet werden soll.

10. System neu starten

Nach einem erfolgreichen Upgrade:

# reboot

Nach dem Neustart prüfen:

$ cat /etc/debian_version && cat /etc/os-release

Es sollte nun Debian 13 „Trixie“ angezeigt werden.
Außerdem empfiehlt es sich, den Kernel zu überprüfen:

$ uname -r

Das System sollte erfolgreich mit dem neuen Kernel gestartet sein, bevor alte Kernel oder nicht mehr benötigte Pakete entfernt werden.

11. Paketstatus nach dem Upgrade überprüfen

Nach dem Neustart sollte zunächst geprüft werden, ob das Paketmanagement einen konsistenten Zustand meldet:

dpkg --audit

Danach:

apt update
apt full-upgrade

Auch die aktiven Paketquellen sollten nochmals kontrolliert werden:

apt-cache policy

Insbesondere dürfen keine versehentlich aktiv gebliebenen Bookworm-Quellen vorhanden sein.

12. Aufräumen

Nach einem erfolgreichen Neustart sollten nicht mehr benötigte Abhängigkeiten und Pakete entfernt werden:

apt autoremove --purge

Vor dem Bestätigen sollte die von APT vorgeschlagene Paketliste kontrolliert werden.
Alte Kernel sollten ebenfalls nicht blind entfernt werden. Mindestens ein funktionierender Kernel sollte als Fallback erhalten bleiben.

13. Fremdquellen wieder aktivieren

Drittanbieter-Repositories sollten erst nach einem erfolgreichen Upgrade wieder aktiviert werden.
Vorher sollte geprüft werden, ob der jeweilige Anbieter Debian 13 / Trixie offiziell unterstützt.
Das gilt beispielsweise für Debian Multimedia.

Ein Fremdrepository sollte nicht allein deshalb wieder aktiviert werden, weil es unter Bookworm funktioniert hat.

Nach dem Aktivieren einer solchen Quelle sollte zunächst geprüft werden, welche Pakete daraus stammen und welche Versionen APT installieren möchte.

Installiert man ein einzelnes .deb Debian-Paket und es kommen Fehlermeldungen hilft in der Regel folgendes Kommando:

# apt install -f

14. Abschlusskontrolle

Zum Abschluss empfehlen sich folgende Kommandos:

$ cat /etc/os-release
$ uname -r
# dpkg --audit
# apt update
# apt update
# apt full-upgrade

und:

# apt autoremove --purge

Die Logdateien des Paketmanagements können ebenfalls hilfreich sein:
/var/log/apt/history.log
/var/log/apt/history.log
/var/log/apt/term.log
/var/log/dpkg.log

APT und dpkg protokollieren dort die Paketänderungen des Upgrades.

Wenn es Probleme gibt

Bei Problemen sollte nicht versucht werden, das Upgrade durch weitere Paketinstallationen "irgendwie" fortzusetzen.
Stattdessen sollte zunächst die konkrete APT-/dpkg-Fehlermeldung untersucht und der Zustand des Paketmanagements wieder konsistent hergestellt werden.

Kein Backup ~ Kein Mitleid! Alle Angaben ohne Gewähr!

↑°↑ Zurück