Ubuntu Upgrade auf neue Version: Das sollten Nutzer wissen

Als Video ansehen
Bereitgestellt über YouTube

Ubuntu Upgrade auf neue Version: Das sollten Nutzer wissen

Regelmäßig erscheinen neue Ubuntu-Hauptversionen, die größere Änderungen an der Software mitbringen. Reguläre Versionen werden 9 Monate, LTS-Versionen für 5 Jahre gepflegt. Nutzer sollten sich für einen Intervall entscheiden und ihr Ubuntu dementsprechend aktuell halten (z.B. von 22.04 auf 24.04 LTS), um nicht die Unterstützung zu verlieren. Dieser Beitrag zeigt, wie du auf eine neue Hauptversion mit der grafischen Desktop-Oberfläche sowie per Kommandozeile (z.B. auf Servern) aktualisierst.

Der Versionszyklus von Ubuntu: Das solltest du wissen

Ubuntu arbeitet mit klassischen Versionen. Sämtliche Programme/Pakete werden in einer bestimmten Version getestet, die als Hauptversion von Ubuntu veröffentlicht wird. Das Schema dafür lautet JJ.MM[.point-release] – dabei steht JJ für das Jahr in zwei Ziffern, MM der Monat.1 Ein aktuelles Beispiel ist Ubuntu 24.10, diese Hauptversion erschien im Oktober (Monat 10) 2024.

Steht der Zusatz LTS (Long Term Support) am Ende, versorgt der Hersteller Canonical sie 5 Jahre lang mit kritischen Fehlerkorrekturen und Sicherheitsupdates (Standard Support). Über ein Pro-Abo weitere 5 Jahre (End of Life, EOL).2 Jede zweite Hauptversion ist in der Regel LTS: Ubuntu 20.04 LTS, 22.04 LTS 24.10 LTS usw. Steht am Ende der Ziffern ein zweiter Punkt mit einer Zahl, ist dies ein point release (z.B. Ubuntu 24.04.1 LTS). Das erste point release wird 3 Monate nach der LTS-Version veröffentlicht, anschließend erscheint alle 3 Monate ein neues. Es bündelt alle (Sicherheits-) Updates seit der vorherigen (oder initialen) Version und soll verhindern, dass nach der Installation große Mengen an Paketaktualisierungen installiert werden müssen. Außerdem schafft es Kompatibilität für neue Hardware.

Nur bei LTS gibt es point releases, weil diese durch ihren langen Unterstützungszeitraum von 5 bzw. bis zu 10 Jahren ansonsten schnell stark veraltet wären. Reguläre Versionen ohne LTS (z.B. 24.10) erscheinen alle 6 Monate und werden 9 Monate gepflegt.

Ein Auszug aus den Versionen von Ubuntu

LTS oder reguläre Version?

Reguläre Versionen haben einen großen Vorteil: Ihre Pakete sind deutlich aktueller. Innerhalb einer Ubuntu-Version werden keine größeren Aktualisierungen an der Software vorgenommen. Einen Sprung von z.B. PHP 7 zu 8 gibt es dort eben so wenig wie von Gimp 2.10 zu 3. Man bekommt lediglich Fehlerkorrekturen und Sicherheitsupdates. Mit einer neuen Ubuntu-Version ändert sich das. Reguläre Veröffentlichungen erscheinen alle 6 Monate mit frischer Software. Sie werden 9 Monate unterstützt, d.H. man sollte nach 6 bis spätestens 9 Monaten auf die nächste Version ein Upgrade durchführen.

Genau das kann unter Umständen der Nachteil sein. Wer maximale Stabilität und Zuverlässigkeit möchte, bekommt bei LTS einen Softwarestand, der mindestens 5 Jahre lang im wesentlichen nicht verändert wird. Für Server beispielsweise kann das sinnvoll sein, wenn keine aktuellen Pakete benötigt werden (etwa bei der Nutzung von Containern für die Dienste).

Dies reduziert den Aufwand für Upgrades. Im Ubuntu Wiki werden beide Varianten gegenübergestellt.3 Tendenziell ist meine Empfehlung: Auf Servern LTS, während der Desktop die aktuellste Version erhält. Diese sind bei Ubuntu ausreichend stabil fürs tägliche Arbeiten. Zeitgleich ist die Software nicht zu sehr abgehangen. Selbst wenn man von LTS zu LTS geht, sind die Pakete am Ende über 2 Jahre alt. Das mag für Nutzer die nur im Web Surfen ausreichen. Spieler beispielsweise profitieren von möglichst aktueller Anwendersoftware inkl. Kernel.

Die Datei /etc/update-manager/release-upgrades legt fest, ob ihr Normale oder LTS-Versionen nutzen möchtet. Das betrifft auch die Benachrichtigungen zu neuen Versionen. Je nachdem wofür ihr euch entschieden habt, sollte hier Promt=lts oder Promt=normal stehen. In diesem Beispiel habe ich einen Server, der auf LTS steht.

$ cat /etc/update-manager/release-upgrades
# Default behavior for the release upgrader.

[DEFAULT]
# Default prompting and upgrade behavior, valid options:
#
#  never  - Never check for, or allow upgrading to, a new release.
#  normal - Check to see if a new release is available.  If more than one new
#           release is found, the release upgrader will attempt to upgrade to
#           the supported release that immediately succeeds the
#           currently-running release.
#  lts    - Check to see if a new LTS release is available.  The upgrader
#           will attempt to upgrade to the first LTS release available after
#           the currently-running one.  Note that if this option is used and
#           the currently-running release is not itself an LTS release the
#           upgrader will assume prompt was meant to be normal.
Prompt=lts

Alternativ über die grafische Oberfläche, wenn ihr nach „aktualisierung“ sucht und die Aktualisierungsverwaltung öffnet. Dort unten links auf Einstellungen:

Im Reiter Aktualisierungen lässt sich unten bei Über neue Ubuntu-Versionen benachrichtigen zwischen LTS (Langzeitunterstützungsversionen) und den regulären (jede neue Version) wählen:

Vorbereitung für das Ubuntu Upgrade

Prüfe zunächst, welche Ubuntu Version auf deinem System eingesetzt wird. Mit lsb_release ermitteln wir die Distribution, während uname die derzeit laufende Kernel-Version anzeigt. Hier haben wir Ubuntu 22.04 unter Linux 5.12.0-102.

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.5 LTS
Release:	22.04
Codename:	jammy

$ uname -mrs
Linux 5.15.0-102-generic x86_64

Man kann sich beides in eine Textdatei schreiben, um später das erfolgreiche Upgrade verifizieren zu können:

lsb_release -a > version-vor-upgrade.txt
uname -mrs >> version-vor-upgrade.txt

Oder grafisch über die Suche nach „info“, dabei landet man in den Systeminformationen der Einstellungen:

Bei LTS-Versionen ist nur der Sprung zur nächsten LTS-Version unterstützt. Beispielsweise von 20.04 LTS auf 22.04 LTS. Direkt von 20.04 LTS auf 24.04 LTS nicht, hier müsste man zuerst von 20.04 LTS auf 22.04 LTS und dann auf 24.04 LTS. Ein Blick in die Versionsübersicht ist in jedem Falle ratsam.4 Dort sind alle Versionen mit den wichtigen Eckdaten zusammengefasst. Die Release Notes der Zielversion sollten zumindest zur Prüfung auf relevante Änderungen überflogen werden. Insbesondere auf Servern zwecks Kompatibilität der eingesetzten Software!

Als nächstes eine aktuelle Sicherung anlegen. Ich habe mit der Stabilität von Ubuntu Upgrades gute Erfahrungen gemacht. Dennoch kann – wie bei jeder Software – etwas schief gehen, möglicherweise nur in bestimmten Konstellationen. Bei virtuellen Servern am besten einen Snapshot anlegen, um für den Fall der Fälle ohne große Ausfälle zurück zu kommen.

Sinnvoll ist das prüfen auf zurückgehaltene Pakete. Sie werden nicht aktualisiert und funktionieren nach dem Upgrade ggf. nicht mehr. Darüber hinaus können sie mit der Zeit zum Sicherheitsrisiko werden. Existieren keine, ist die folgende Ausgabe leer. Andernfalls sollte das ignorieren mit sudo apt-mark unhold <Paketname> abgeschaltet werden.

sudo apt-mark showhold

Anschließend alle Pakete auf die aktuellste stabile Version aktualisieren (möglicherweise ist danach ein Neustart nötig):

sudo apt update
sudo apt upgrade

Zu guter Letzt noch sicherstellen, dass genügend freier Speicherplatz vorhanden ist. Ubuntu macht keine exakten Vorgaben. Je nach installierter Software müssen einige Gigabyte an Daten heruntergeladen sowie entpackt werden.

$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        38G  6.8G   29G  19% /

Upgrade durchführen

Als letzten Schritt vor dem Upgrade zeigt do-release-upgrade -c an, welche neuen Versionen verfügbar sind:

$ do-release-upgrade -c
Checking for a new Ubuntu release
New release '24.04.1 LTS' available.

Das Ubuntu 22.04.5 LTS System kann also auf 24.04 LTS aktualisiert werden, wobei für 24.04 bereits das erste point release erschienen ist. Wir gehen also direkt auf 24.04.1 und sparen uns damit die Installation der Updates innerhalb von 24.04, welche seit 24.04(.0) erschienen sind. Es ist empfehlenswert, zuvor einen Blick in die Neuerungen/Änderungen zu werfen – zumindest eine Zusammenfassung.5

Zum Einspielen könnt ihr auf grafischen Systemen warten, bis euch ein Popup das Upgrade anbietet.6 Das Werkzeug do-release-upgrade kümmert sich um das gesamte Upgrade per Kommandozeile. Ihr könnt es auf Servern nutzen und auch um es auf Desktops händisch zu starten, bevor es angeboten wird. Es muss als root ohne -c ausgeführt werden, etwa mit sudo do-release-upgrade als normaler Benutzer. Einige Informationen zur neuen Version werden angezeigt. Die kennt ihr durch das Prüfen der Release Notes bereits, sodass mit y fortgefahren werden kann.

Beim Aufruf über eine SSH-Sitzung startet es einen zweiten SSH-Dienst auf Port 1022. Die Möglichkeiten im Fehlerfalle einzugreifen, sind bei SSH begrenzt. Über die zweite Instanz soll verhindert werden, dass man gar nicht mehr an das System kommt. Gegebenenfalls ist dafür eine Ausnahme in der Firewall notwendig. Bestätigt mit [ENTER] zum Fortfahren.

Habt ihr einen eigenen Spiegelserver eingetragen, fragt der Assistent, ob er die Einträge auf die neue Version aktualisieren soll. Bei virtuellen Servern ist das ggf. unwissend der Fall. Manche Hoster wie z.B. Hetzner betreiben eigene Spiegelserver, um den externen Datenverkehr zu reduzieren. Dies ist bei einer Standard-Installation mit den offiziellen Installationsmedien nicht der Fall. Um die aktuellen Pakete der neuen Version zu bekommen, muss hier mit y bestätigt werden.

Unmittelbar vor dem Upgrade wird eine Zusammenfassung angezeigt, was an den Paketen konkret verändert wird. Mit d lassen sich die Namen der Pakete anzeigen. Wird der Vorgang mit y gestartet, darf er nicht unterbrochen werden! Sonst kann eine kaputte Installation entstehen. Notebooks sollte man daher vorsorglich ans Stromnetz anschließen.

Währenddessen erscheinen möglicherweise Nachfragen, etwa zum Tastaturlayout. Oder was mit geänderten (systemweiten) Konfigurationsdateien passieren soll. Hier schaue ich mir erst mal mit D zunächst die Unterschiede an. Möglicherweise sind neue Direktiven enthalten, wie im folgenden Beispiel. Auf virtuellen Servern größerer Hoster kann das pasiseren, weil sie eigene, angepasste Betriebssystemabbilder anbieten. Hetzner z.B. hat einen eigenen NTP-Server zur Synchronisation der Uhrzeit eingetragen. Dadurch weicht die Konfigurationsdatei /etc/systemd/timesyncd.conf von der ab, die standardmäßig im Softwarepaket enthalten ist.

Im Zweifel sollte mit N die lokal vorhandene Version behalten werden, um nichts zu überschreiben ([Enter] oder N).
Tipp: Nutzt nach Möglichkeit nicht die globale Konfigurationsdatei, sondern zusätzliche eigene, um solche Konflikte zu vermeiden! Beispiel: Für zusätzliche Paketquellen eigene Dateien unter /etc/apt/sources.list.d anlegen, statt direkt /etc/apt/sources.list zu erweitern.

Generell ist die Software sehr zurückhaltend, was automatische Änderungen angeht und fragt dementsprechend mehrmals nach Bestätigung. Etwa auch vor der Entfernung der nicht mehr benötigten/unterstützen Pakete. Ihr solltet daher zumindest mit einem Auge einen Blick darauf halten.

Nach dem Abschluss muss das System neu gestartet werden (wieder durch Bestätigung mit y):

Nun sollte die neue Ubuntu-Version starten. Ihr könnt das wie oben beschrieben verifizieren und mit den zuvor in eine Textdatei geschriebenen alten Versionen abgleichen:

Oder grafisch über die bekannte Systeminfo in den Einstellungen:

Nacharbeiten

Sämtliche Drittanbieter-Repos in /etc/apt/sources.list.d/ und /etc/apt/sources.list werden vor dem Upgrade automatisch deaktiviert. Solltet ihr externe Repos eingebunden haben, müsst ihr diese nun mit einem Texteditor überarbeiten. Sofern sie für die neue Ubuntu-Version angeboten werden, sind die Einträge auf den Codename zu aktualisieren. Falls nicht, existieren möglicherweise andere Wege zur Bereitstellung – etwa AppImage oder Flatpack. Wer nur die Standard-Repos nutzt, ist an dieser Stelle bereits fertig und kann sich über ein reibungsloses Upgrade freuen.

So funktioniert ein Upgrade technisch

Mir ist es ja ein Anliegen, dass man nicht blind irgendwelche Befehle ausführt oder zusammen kopiert. Sondern ein grundlegendes Verständnis hat, was dabei passiert. Ansonsten ist man spätestens dann aufgeschmissen, wenn mal etwas schief gehen sollte. Wer nicht weiß was passiert, hat keine Ahnung, wo er zur Fehlersuche ansetzen soll. Ein Standard-Ubuntu bezieht seine Software aus APT-Paketen und Snaps. Das Meiste kommt von APT, weil das Format seit Jahrzehnten existiert.

Die Standard-Paketquellen sind in /etc/apt/sources.list eingetragen,7 ein Beispiel:

deb https://de.archive.ubuntu.com/ubuntu jammy main restricted
  • deb ist der Typ – es existieren deb für Binärpakete, die Nutzer in der Regel möchten. Dazu deb-src für den Quellcode der Pakete zum selbst kompilieren (eher für Entwickler und Power-Nutzer).
  • Es folgt die Adresse zum Spiegelserver. Standardmäßig liegen diese auf ubuntu.com. Grundsätzlich sind auch andere und eigene möglich.
  • jammy ist der Archivname und beginnt immer mit der Ubuntu-Version, jammy entspricht 22.04.8 Es existieren weitere Archive: Der Zusatz -security (z.B. jammy-security) enthält beispielsweise wichtige Sicherheitskorrekturen, da das Archiv einer Version nach der Veröffentlichung nicht mehr verändert wird. Über -updates (z.B. jammy-updates) verteilt Ubuntu empfohlene Aktualisierungen. Darin sind Fehler korrigiert, die weder gravierend noch sicherheitskritisch sind. Weitere existieren, die eher für erfahrenere Anwender Relevanz besitzen.
  • main und restricted sind Komponenten.9 Sie filtern Pakete anhand ihrer Unterstützung (offiziell von Ubuntu vs. Community) und der Lizenzierung: main und universe stehen unter freien Lizenzen, restricted und multiverse dagegen nicht. In restricted sind beispielsweise proprietäre Grafikkartentreiber zu finden. Sie sind wichtig, daher unterstützt Ubuntu sie offiziell. Allerdings nur eingeschränkt, weil sie keinen Zugriff auf den Quellcode haben.

Im Kern wird in diesen Einträgen der Codename der alten Version durch die Neue ersetzt. Beispielsweise von Ubuntu 22 (Jammy) auf 24 (Noble). Oben ist der alte Eintrag auskommentiert, er würde beim Upgrade ersetzt werden. Danach holt man sich per apt update die verfügbaren Pakete und Versionen aus den neuen Paketquellen. Schlussendlich aktualisiert apt upgrade alle auf die neue Version für die Ziel-Distribution.

#deb https://de.archive.ubuntu.com/ubuntu jammy main restricted
deb https://de.archive.ubuntu.com/ubuntu noble main restricted

Man kann das (bei älteren Versionen) sehen, in dem die reinen Einträge (ich filtere Kommentare und leere Zeilen mit grep) vor dem Upgrade in eine Datei schreibt und anschließend mit den neuen vergleicht:

grep -Ev '^(#|$)' /etc/apt/sources.list > repos-vor-upgrade.txt

Unter Ubuntu 24.04 ist ein direkter Vergleich nicht mehr möglich, weil sich der Pfad und das Format der Datei geändert hat.

Quellen

  1. https://canonical-ubuntu-packaging-guide.readthedocs-hosted.com/en/latest/explanation/releases/ ↩︎
  2. https://canonical-ubuntu-packaging-guide.readthedocs-hosted.com/en/latest/explanation/releases/#ubuntureleaselifespan ↩︎
  3. https://wiki.ubuntuusers.de/Unterschiede_LTS_und_normale_Version/ ↩︎
  4. https://wiki.ubuntu.com/Releases ↩︎
  5. https://www.heise.de/news/Ubuntu-24-10-Gnome-47-neues-APT-Berechtigungsabfragen-9988380.html ↩︎
  6. https://ubuntu.com/tutorials/upgrading-ubuntu-desktop#1-before-you-start ↩︎
  7. https://wiki.ubuntuusers.de/sources.list/ ↩︎
  8. https://wiki.ubuntuusers.de/Paketquellen/#Die-unterschiedlichen-Archive ↩︎
  9. https://wiki.ubuntuusers.de/Paketquellen/#Die-Komponenten-bei-Ubuntu ↩︎

Leave a Reply