Dist-Upgrades kosten Zeit, und es bleibt ein Restrisiko, dass danach manches nicht mehr wie vorher funktioniert. Unvermeidbar macht sie die Tatsache, dass Sicherheits-Fixes immer schwieriger werden, je mehr die installierte Software veraltet.
Für die Linux-Distributoren bedeutet es einigen Aufwand, die sicherheitsrelevanten Fixes zu sammeln und auf die Pakete anzuwenden, sodass Benutzer sie mit einem Mausklick einspielen können (Abbildung 1). Daher stellt OpenSuse die Updates nur für die aktuelle Ausgabe seiner konventionellen, jährlich aufgefrischten Distribution Leap zur Verfügung. Eine halbjährliche Überlappung schafft Spielraum für das Upgrade.
Abbildung 1: Softwareaktualisierungen, die Sicherheitslücken schließen, können Anwender aller gängigen Linux-Distributionen tagesaktuell mit wenigen Minuten Zeitaufwand einspielen.
In der Praxis bedeutet das: Jedes Jahr, meist im Juni, beginnt ein sechsmonatiges Zeitfenster, in dem OpenSuse-Leap-Anwender ihre Rechner aktualisieren sollten. Tun sie es nicht, dann versiegen die Update-Repositories, bekannte Sicherheitslücken bleiben ohne Fix. Zwar sind großflächige Angriffe auf Linux-Desktops bisher ausgeblieben, doch man kann nie wissen, wie schnell auch Linux zur Zielscheibe für Kriminelle wird.
Doppelpack
OpenSuse kennt zwei Verfahren für ein Dist-Upgrade, das eine bestehende Installation auf eine neuere OpenSuse-Fassung aufrüstet. Simpel und schnell gelingt das Upgrade direkt aus dem aufzufrischenden System heraus über den Konsolenbefehl zypper dup. Hier handelt es sich in zweierlei Wortsinn um ein Online-Upgrade: Das System ist während des Upgrades online und bezieht die Daten live aus dem Internet.
Ein alternatives Vorgehen besteht im Starten der Installations-DVD oder eines daraus abgeleiteten USB-Sticks mit der Startoption Upgrade (Abbildung 2). Das aufzufrischende System selbst läuft während des Upgrades nicht, es handelt sich um ein Offline-Upgrade. Eine Internet-Verbindung ist nicht erforderlich.

Abbildung 2: Eine OpenSuse-Leap-Installations-DVD bietet für eine bestehende OpenSuse-Installation gleich nach dem Start die Option Upgrade an.
Beide Verfahren haben ihre Vorzüge und Nachteile: Beim Upgrade aus dem laufenden System heraus brauchen Sie kein Installationsmedium (DVD oder USB-Stick) zu präparieren, sondern starten die Aktualisierung mit wenigen Konsolenbefehlen im laufenden System.
Das Upgrade via Installationsmedium bietet durchgängig eine grafische Umgebung (Abbildung 3). Außerdem läuft während des Upgrades nicht die aufzufrischende Installation selbst, sondern ein von den OpenSuse-Entwicklern zusammengestelltes Standardsystem. Das kommt der Zuverlässigkeit des Upgrades zugute: Ein abgebrochener Upgrade-Vorgang hinterlässt oft ein nicht lauffähiges System, das sich nur mit Experten-Know-how reparieren lässt.

Abbildung 3: Dist-Upgrades mithilfe der Leap-Installations-DVD nutzen die (im Detail leicht modifizierte) schon aus der OpenSuse-Installation bekannte grafische Umgebung.
Blockadehaltung
Problematisch beim Distributions-Upgrade sind Pakete, für die keine Auffrischung vorliegt: Ihre Abhängigkeiten entsprechen der alten Systemumgebung. Mit diesen nun veralteten Anforderungen blockieren sie das Auffrischen von Bibliotheken. Da sich Abhängigkeiten und Unterabhängigkeiten in einer Baumstruktur immer weiter verzweigen, hat eine einzige veraltete das Potenzial, weite Teile des Updates auszubremsen (Abbildung 4).

Abbildung 4: Das Arch-Linux-Werkzeug Pacgraph visualisiert hier die Paketabhängigkeiten für ein minimales Arch-System mit LXQt-Desktop. Unter OpenSuse fallen die Paketverflechtungen ebenso dicht aus.
Es gibt nur eine zuverlässige Lösung, um solche Hindernisse auszuräumen: störende Pakete zu deinstallieren. Tatsächlich entfernt das Offline-Upgrade rigoros alle Pakete, die sich nicht in einem für das Upgrade ausgewählten Repository befinden. Sind die eingebundenen Softwarequellen also zueinander kompatibel, sprich fehlerfrei auf dieselbe Fassung von OpenSuse Leap zugeschnitten, dann sollte es nie zu Abhängigkeitskonflikten wie in Abbildung 5 kommen. Hier trat ein Problem auf, weil der Anwender entgegen dem Vorschlag des Update-Programms ein altes Repository beibehalten hat.

Abbildung 5: Abhängigkeitskonflikte sollten nur auftreten, wenn beim Upgrade eigene Paket-Repositories eingebunden bleiben. Hier bietet die Softwareverwaltung Lösungen. Während des Dist-Upgrades kommt am ehesten eine Deinstallation infrage.
Das Live-Upgrade geht bei alten Paketen ohne verfügbares Upgrade behutsamer vor: Es deinstalliert sie nur, wenn sie tatsächlich Abhängigkeitsprobleme verursachen. Ansonsten markiert zypper dup sie lediglich als orphan (verwaist), sodass der Paketmanager sie dann löscht, wenn sie später bei der Neuinstallation von Programmen Probleme verursachen.
Das ist ein nicht unerheblicher Unterschied zwischen beiden Upgrade-Verfahren: Das externe Dist-Upgrade geht auf Nummer sicher, indem es alle nicht auffrischbaren Pakete entfernt, während zypper dup im laufenden System minimalinvasiv verfährt. Dafür fügt das Offline-Upgrade automatisch neu zu OpenSuse hinzugekommene Pakete gemäß der aktiven Schemata in der Paketverwaltung aus (Abbildung 6), was Neulingen entgegenkommt.

Abbildung 6: Während das Upgrade per zypper dup lediglich neue Abhängigkeiten neu installiert, fügt das Offline-Upgrade vom Installationsmedium automatisch neue KDE-Komponenten hinzu, wenn die Softwarezusammenstellung KDE-Anwendungen und Plasma-Desktop im Paketmanager aktiv war.
Hilfe von außen
Um ein Offline-Update auf Basis des offiziellen Installationsmediums [1] vorzunehmen, brennen Sie entweder mit Programmen wie Brasero [2] oder K3b [3] eine DVD oder ziehen die ISO-Image-Datei nach Einstecken eines USB-Sticks in das Fenster des SUSE Studio Imagewriter (Paket imagewriter). Stellen Sie nach einem Reboot außerdem im UEFI/BIOS des Rechners sicher, dass er tatsächlich von dem externen Medium startet. Meist findet sich die Einstellung im Menüpunkt Boot.
Im Boot-Menü des Installers wählen Sie Upgrade. Nach einer Systemanalyse sollte die Software das auf dem Rechner installierte OpenSuse (oder gegebenenfalls mehrere) zur Wahl stellen. Weiter bringt Sie zum Dialog Zuvor verwendete Repositorys. In der Spalte Aktion ist jeweils Entfernen vorausgewählt (Abbildung 7): Diese Voreinstellung löscht alle bisherigen Repositories. Der nächste Bildschirm bindet dann die Standard-Repositories der neuen Distributionsausgabe ein.

Abbildung 7: In der Voreinstellung entfernt das Upgrade via Installations-DVD alle bisherigen Repositories, um im nächsten Schritt die Standardsoftwarequellen für die neue OpenSuse-Version einzubinden.
Es ist möglich, hier zum Beispiel Repositories aus dem OpenSuse Build Service durch einen Klick auf Status wechseln beizubehalten. Dann müssen Sie allerdings die URL ändern, auf die das Repository verweist: Fast immer ist die Distributionsversion Teil des Pfads. Passen Sie diesen Abschnitt der neuen Systemversion gemäß an (Abbildung 8). Allerdings hat sich in manchen Build-Service-Repositories offenbar der Pfad von openSUSE_Leap_15.3 zu 15.4 verändert. Öffnen Sie daher die URL der zusätzlichen Repositories vor dem Starten des Upgrades im Browser und prüfen dies nach.

Abbildung 8: Ist die Distributionsversion in der URL eines von Ihnen per Hand eingebundenen Repositorys explizit genannt, dann ersetzen Sie die Versionsnummer wie hier zu sehen durch $releasever.
Treten nach der Repository-Auswahl Abhängigkeitsprobleme auf, dann ist die Deinstallation (erste Option) des auslösenden Pakets hier meist die sinnvollste Lösung. Versuchen Sie besser, später im aufgefrischten System das entfernte Paket neu zu installieren und dabei eine Lösung für das Abhängigkeitsproblem zu finden: Dort steht ein Browser für die Recherche nach Lösungen bereit.
Treten zu viele Abhängigkeitskonflikte zutage, so brechen Sie die Installation hier ab, starten das Upgrade noch einmal und versuchen Ihr Glück ohne die problematischen Paketquellen, die sich später immer noch einbinden lassen. Ansonsten fehlt jetzt nur noch ein Klick auf Aktualisierung, und das Upgrade nimmt seinen Lauf. Es endet mit einem Neustart des Systems.
Eigeninitiative
Seit Langem kennt die Kommandozeilenpaketverwaltung Zypper den Befehl dup für Distributions-Upgrades aus dem laufenden System heraus. Das Booten von einem USB-Stick oder einer Installations-DVD entfällt dabei. Damit der dup-Befehl die Versionen anheben kann, steht zuerst ein Update der Softwarerepositories auf die neue Distributionsfassung an – es sei denn, in der URL ist die Distributionsversion mithilfe der Variablen $releasever eingebunden. Das ist bei den Standard-Repositories nach der Installation der Fall. Dann genügen die beiden Aufrufe aus Listing 1 für ein vollständiges Distributions-Upgrade.
Listing 1
Einfaches Upgrade
$ sudo zypper --releasever=15.4 ref $ sudo zypper --releasever=15.4 dup
Testen Sie die Funktion Parameters des --releasever durch Eingabe von zypper --releasever=15.4 lr -u. Die URLs in der Befehlsrückgabe, die nun die Zeichenfolge 15.4 enthalten, brauchen Sie nicht zu verändern. Bei allen anderen ersetzen Sie im YaST-Modul Softwarerepositorys (Abbildung 8) die Angabe 15.3 in der URL entweder durch 15.4, oder – um für das nächste Upgrade vorzusorgen – gleich durch $releasever.
Bei einigen Repositories des Build Service hat sich der letzte Abschnitt der URL zum Beispiel von /openSUSE_Leap_15.3/ auf nur noch /15.4/ verkürzt. Prüfen Sie das, indem Sie die alte URL im Browser öffnen, mit einem Klick auf Parent Directory ein Verzeichnis nach oben wechseln und dann nach dem richtigen Unterverzeichnis für Version 15.4 Ausschau halten.
Das eigentliche Distributions-Upgrade startet wie erwähnt über das dup-Kommando aus der letzten Zeile von Listing 1. Führen Sie diesen Befehl niemals in einem Konsolenfenster innerhalb der grafischen Umgebung aus: Zu groß ist die Gefahr, dass die Desktop-Umgebung während des Upgrades abstürzt. Aus unterschiedlichen Gründen führt dann oft auch ein Neustart von zypper dup nicht mehr zum Erfolg.
Sicherungsmaßnahmen
Ein abgebrochenes Distributions-Upgrade macht meist eine Neuinstallation erforderlich, und selbst ein bis zum Ende durchgelaufenes Upgrade birgt ein Restrisiko, dass danach der Rechner nicht mehr wie gewünscht funktioniert. Daher sollten Sie vor jedem Dist-Upgrade eine Datensicherung anfertigen – nicht nur von den Daten im Home, das ohnehin unverzichtbar ist, sondern auch von der Systempartition. Ein bloßes Kopieren der Dateien im grafischen Dateimanager genügt hier nicht, doch mithilfe von Rsync gelingt das Backup einfach und in deutlich unter einer Stunde (Listing 2).
Listing 2
Backup per Rsync
# rsync -aAXHv --exclude={ \
"/dev/*", "/proc/*", "/sys/*", \
"/tmp/*", "/run/*", "/mnt/*"," \
/home/*", "/lost+found"} / \
/Pfad/zum/Backup
Zum Zurückspielen vertauschen Sie lediglich die Ziel- und Quellverzeichnisse im Rsync-Befehl. Versetzen Sie sicherheitshalber für den eigentlichen Upgrade-Vorgang das System mit sudo systemctl isolate rescue.target in den Rescue-Modus, in dem so wenig Software läuft wie nur möglich. Eine Netzanbindung via WLAN geht dabei allerdings verloren, sodass Zypper die neuen Pakete nicht herunterladen kann.
Falls keine Möglichkeit besteht, auf eine kabelgebundene Internet-Verbindung umzuschalten, lassen Sie die grafische Umgebung im Hintergrund laufen und wechseln mit [Alt]+[F2] auf eine Textkonsole, in der Sie sich als Root einloggen. Die Konfigurationsdateien der mit Benutzerrechten ausgeführten Anwendungsprogramme im Home unter .config/ tastet ein Dist-Upgrade nicht an. Meist kommen neuere Versionen einer Software mit den Konfigurationen aus älteren zurecht. Es kann allerdings vorkommen, dass Programme die Konfiguration aus älteren Versionen ignorieren.
Etwas anders sieht es bei den Systemkonfigurationsdateien im Verzeichnis /etc aus: Hier überschreibt die Paketverwaltung alle Dateien, die Sie seit der Installation nicht berührt haben. Bei veränderten Dateien bleibt die von Ihnen erstellte Version erhalten, falls die Default-Fassung im Paket sich im Vergleich zur Vorgängerversion nicht verändert hat. Haben Sie dagegen die Datei editiert und verändert sich zugleich auch die Vorgabefassung im Paket, gibt es zwei Möglichkeiten: Entweder installiert das Upgrade die neuen Vorgabewerte und sichert die alte Version mit der Endung .rpmsave, oder es behält die veränderte Version bei und legt den neuen Default-Vorschlag mit der Endung .rpmnew ab. Das Tool rpmconfigcheck listet alle .rpmsave– und .rpmnew-Dateien. Das Programm Meld eignet sich gut, um eigene Änderungen und neu hinzugekommene Optionen in Konfigurationsdateien zusammenzuführen (Abbildung 9).

Abbildung 9: Über die Pfeil-Icons lassen sich in Meld die in der neuen Version hinzugekommenen Einstellungen (wie Option_5) kinderleicht mit bestehenden Änderungen (Option_3) zusammenmischen.
Konfigurationsdateien müssen im Paket explizit als solche gekennzeichnet werden, inklusive der Entscheidung, ob veränderte Einstellungen beibehalten und die neuen Vorgabewerte als .rpmnew abgelegt werden oder umgekehrt. Bei der Vielzahl der Pakete sollte man damit rechnen, dass die Entwickler das auch einmal vergessen haben. Die alte Konfiguration geht dann mit dem Update verloren. Auch deshalb empfiehlt es sich, vor jedem Dist-Upgrade ein Backup der Systempartition anzulegen.
Zusätzlich konserviert der nach einer Standardinstallation aktive Dateischnappschussdienst Snapper [4] nicht nur Änderungen nach der Neuinstallation von Software oder Konfigurationsänderungen mit YaST, er sichert auch den Zustand des Dateisystems vor dem Upgrade. Im Ordner /.snapshots liegen Unterverzeichnisse, deren Namen den laufenden Nummern dieser Snapshots entsprechen. Das YaST-Modul Dateischnappschuss nennt Beschreibungen wie before update.
Um zum Beispiel den Zustand der Konfigurationsdatei /etc/fstab in Schnappschuss 26 einzusehen, öffnen Sie das File /.snapshots/26/snapshot/etc/fstab. Sollte beim Upgrade die Systempartition Schaden erleiden, dann gehen diese Daten allerdings ebenfalls verloren.
Fazit
Ein Online-Distributions-Upgrade mit zypper dup aus dem laufenden System erfolgt elegant und simpel. Sie müssen dazu nicht ins UEFI/BIOS abtauchen, um das Booten von Wechselmedien zu ermöglichen. Der bei OpenSuse traditionelle Weg, also das Upgrade mithilfe der Installation-DVD, ist jedoch sicherer, da der kritische Eingriff in Ihre OpenSuse-Installation aus einem stabilen, getesteten Standardsystem heraus erfolgt. Diese Variante empfiehlt sich daher für weniger versierte Anwender. (jlu)
Infos
-
OpenSuse-Installationsmedium: https://get.opensuse.org/leap/15.4/#download
-
Brasero: https://wiki.gnome.org/Apps/Brasero
-
Snapper: https://de.opensuse.org/SDB:Snapper





