SDB:Distribution-Upgrade

(Weitergeleitet von Upgrade)
Wechseln zu: Navigation, Suche
In dieser Anleitung wird gezeigt, wie man mit Zypper ein Upgrade auf die nächste Version von openSUSE Leap macht.
Getestet mit openSUSE Empfohlene Artikel Verwandte Artikel
Icon-checked.png

Icon-manual.png Icon-help.png

Wichtige Anmerkungen

Achtung: die Anleitung hier ist veraltet. Bitte die Anmerkungen auf der Seite "Diskussion" beachten!

Vorbereitung

Warnung!
  • Die wichtigste Vorbereitung bei einem System-Upgrade ist ein Backup der vorhandenen Dateien. Schließlich kann auch bei einem Upgrade mal etwas daneben gehen. Ein Backup kann vor einem eventuellen Datenverlust bewahren!
  • Das System sollte keine offensichtlichen Probleme aufweisen, die sich bei einem Upgrade unter Umständen noch verschlimmern würden.
  • Des Weiteren sollte die installierte openSUSE Version regelmäßig aktualisiert werden, um angebotene sicherheitsrelevante Patches einzuspielen, die auch der Stabilität des Systems dienen.
  • Abhängigkeiten sollten beim Upgrade korrekt aufgelöst werden, um Schäden am System zu vermeiden!

Ein Live-Upgrade auf die nächste Version von openSUSE wird offiziell unterstützt und erlaubt das Upgrade eines kompletten Systems, ohne dass man wieder alles von vorne einrichten muss.

Zusammenfassung

Auf dieser Seite wird erläutert, wie man mit Hilfe des Kommandozeilen-Werkzeugs Zypper openSUSE auf die neueste freigegebene Version aktualisieren kann.

Ein Upgrade mit Zypper wird Live-Upgrade oder Online-Upgrade genannt, und hat folgende Vor- und Nachteile:

Zu den Vorteilen zählen:

  • Es werden nur die Pakete heruntergeladen, die aktualisiert werden müssen.
  • Während der Aktualisierung kann man den PC weiter nutzen (obwohl es nicht zu empfehlen ist). Die einzige Auszeit ist der Neustart.
  • Es werden keine DVDs oder USB-Sticks für das Upgrade benötigt.

Die Nachteile:

  • Wenn aus irgend einem Grund die Aktualisierung unterbrochen wird (z. B. Stromausfall, Unterbrechung des Netzwerkes) und der Prozess nicht fortgesetzt werden kann, kann das System unbrauchbar werden.
  • Bei mehreren Systemen benötigt man jedes Mal eine große Bandbreite.
  • Es übernimmt nicht die gesamte Bereinigung und Wartung, die ein Offline-DVD-Upgrade macht.

Warnung: Es dürfen bei einem Live-Upgrade keine Versionsnummern übersprungen werden. Beispiel: Bitte kein Upgrade von 42.3 auf 15.1 durchführen. Stattdessen macht man das Upgrade von 42.3 auf 15.0 und dann von 15.0 auf 15.1.

Eine andere Möglichkeit ist das Offline-Upgrade, auch bekannt als traditionelles oder DVD-Upgrade, welches sicherer und vielseitiger ist. Im Allgemeinen wird das Offline-Upgrade empfohlen. Wer seine Einstellungen behalten möchte und ein Backup gemacht hat, kann aber auch die Online-Variante wählen.

Unterstützte Szenarien

Wie erwähnt werden Versionssprünge (15.1 => 15.3) nicht unterstützt. Aus diesem Grund ist auch das Upgrade einer sehr alten 32-bit-Version auf Leap (64 bit) nicht möglich. Alte Versionen sollten generell neu installiert werden. Die eigenen Daten können danach selbstverständlich auf das neue System kopiert werden, die Systemeinstellungen sollte man erneut konfigurieren. (Bei der Gelegenheit entdeckt man auch viele nützliche Einstellungen, die man vorher nicht kannte ;-) ).

Auf der AArch64 Architektur (64-bit ARM) wird das Upgrade von Leap 15.0 auf 15.1 nicht unterstützt. Das System muss neu installiert werden.

Im Prinzip wird ein Live-Upgrade nur als "best effort" betrachtet. Das bedeutet, dass es aufgrund einiger Pakete von Drittanbietern und der Vielzahl möglicher Konfigurationen sein kann, dass einige dieser Kombinationen beim Upgrade zu Fehlern führen.

Die wichtigsten Regeln lauten daher:

  • Alle wichtigen Daten müssen vor Beginn des Upgrade-Prozesses gesichert werden.
  • Das bisher installierte System muss vor dem Upgrade noch einmal mit den neuesten Updates aktualisiert werden.
  • Es darf mit "zypper dup" nur zum nächsten Release gewechselt werden. Das Überspringen eines Releases, z. B. von 42.1 -> 15.1, wird nicht unterstützt.

Upgrade-Vorbereitung

Der unterstützte Startpunkt ist die letzte openSUSE-Version mit allen Aktualisierungen. Bisher galt das nicht für openSUSE Build Service Repositories, die möglicherweise hinzugefügt wurden. Mittlerweile (mit dem Stand von openSUSE 15.3) kommt zypper besser damit zurecht, sodass man alle Repositories (die von openSUSE und selbst hinzugefügte wie Packman) in einem Schritt auf die neue Version umstellen kann.

Vorher sollte aber geschaut werden, ob wirklich noch alle extra Repositories nötig sind. Wenn bestimmte Programme nicht mehr gebraucht werden, oder die Grundinstallation von openSUSE inzwischen auf einem ausreichend aktuellen Stand ist, sollte das Dritt-Repository gelöscht werden. Das gilt speziell für HOME-Repositories.

  • Alle aktiven Repos anzeigen:
    zypper lr
    
    Es sollten alle Drittanbieter und OBS Repos entfernt werden, die nicht länger benötigt werden:
    zypper rr <alias>
    

Bei jedem gelöschten Repo(sitory) fragt zypper, was mit den installierten Paketen passieren soll: dann auf die Standard-Version von openSUSE upgraden.

Die folgenden Schritte zeigen, wie ein openSUSE Leap aktualisiert wird, bevor auf die nächste Version gesprungen wird.

Kommandozeile

1. Überprüfen, ob das Update-Repository schon existiert

zypper repos --uri

In den Spalten mit der Überschrift URI muss die Adresse http://download.opensuse.org/update/leap/15.1/oss/ existieren (ersetzen Sie 15.1 durch die vorhandene Version) und aktiviert sein:

#  | Alias           | Name            | Enabled | Refresh | URI
---+-----------------+-----------------+---------+---------+----------------------------------------------------
1  | repo-update     | repo-update     | Yes     | Yes     | http://download.opensuse.org/update/leap/15.1/oss/

Wenn in der Spalte Enabled der Eintrag auf No steht, muss er mit folgendem Befehl aktiviert werden:

zypper mr --enable repo-update
Wobei 'repo-update' der Name des Update-Repositories ist.

Wenn das Repo schon existierte und aktiviert war, bitte mit Schritt 3 weitermachen.

2. Das Update-Repository hinzufügen (wenn noch nicht vorhanden)

zypper addrepo --check --refresh --name 'openSUSE-Leap-15.1-Update' http://download.opensuse.org/update/leap/15.1/oss/ repo-update
Ersetze 15.1 durch die aktuelle Version.

openSUSE 15.3 fügt übrigens zwei weitere Update-Repositories hinzu: eines für Backports (Rückportierungen) und eines für Pakete aus SUSE Linux Enterprise.

3. Verschieben von /var/cache zu einem separaten Subvolume

Warnung!Wenn Du ein Upgrade von openSUSE 15.0 oder später vornimmst, oder das root-Dateisystem nicht Btrfs ist, überspringe diesen Abschnitt und gehe weiter zu Schritt 4.

/var/cache beinhaltet viele sehr unbeständige Daten, wie z. B. den Zypper-Cache mit RPM-Paketen in unterschiedlichen Versionen für jedes Update. Als Resultat der Datenspeicherung, was meistens redundant aber auch unbeständig ist, kann die Menge an Festplattenplatz, die ein Snapshot belegt, sehr schnell wachsen.

Um dieses Problem zu beheben wird /var/cache auf ein separates Subvolume verschoben. Bei frischen Installationen von openSUSE Leap wird das automatisch gemacht. Für eine Konvertierung des existierenden root-Dateisystems führt man folgende Schritte durch:

  • Finde den Geräte-Namen (z.B. /dev/sda2 oder /dev/sda3) des root-Dateisystems heraus:
df /
  • Identifiziere das Eltern-Subvolume aller anderen Subvolumes. Für Installationen auf Basis von openSUSE 15.x ist das ein Subvolume mit @ im Namen. Zur Überprüfung, ob es ein Subvolume mit @ haben, verwendet man:
btrfs subvolume list / | grep '@'
  • Wenn die Ausgabe von diesem Befehl leer ist, existiert kein Subvolume mit @ im Namen. In diesem Fall kann man mit der Subvolume-ID 5, die in älteren Versionen von openSUSE verwendet wird, weitermachen.
  • Wenn ein Subvolume mit einem @ im Namen exitiert, wird es in einem temporären Mountpoint gemountet:
mount /dev/<root-device> -o subvol=@ /mnt
Hat man kein Subvolume mit einem @ im Namen haben, mountet man stattdessen die Subvolume-ID 5:
mount /dev/<root-device> -o subvolid=5 /mnt
  • /mnt/var/cache kann schon existieren und es könnte das gleiche Verzeichnis wie /var/cache sein. Um Datenverlust zu vermeiden, kann man es verschieben:
mv /mnt/var/cache /mnt/var/cache.old
  • Dann erstellt man ein neues Subvolume:
btrfs subvol create /mnt/var/cache
  • Wenn jetzt ein Verzeichnis /var/cache.old vorhanden ist, wird es an den neuen Ort verschoben:
mv /var/cache.old/* /mnt/var/cache
Ist das nicht der Fall, gibt man stattdessen folgendes ein:
mv /var/cache/* /mnt/var/cache/
  • Nach dem Verschieben kann man /mnt/var/cache.old entfernen:
rm -rf /mnt/var/cache.old
  • Dann hängt man das Subvolume aus dem temporären Mountpoint aus:
umount /mnt
  • Das neue Subvolume /var/cache erhält einen Eintrag in der /etc/fstab. Man kann dafür das schon vorhandenes Subvolume als Template kopieren. Die UUID muss unberührt bleiben (das ist die UUID des Root-Dateisystems) und der Name vom Subvolume und seinem Mountpoint einheitlich zu /var/cache geändert werden.
  • Das neue Subvolume mus so wie in /etc/fstab festgelegt gemountet werden:
mount /var/cache

4. Update des bisherigen Systems auf die neuesten Pakete

zypper refresh
zypper update

Weitere Informationen zum Thema Zypper, finden Sie in der Zypper-Anleitung.

Online-Update mit YaST

Siehe YaST Online Update.

Upgrade ausführen

Die folgenden Schritte werden zeigen, wie man die openSUSE-Distribution auf die nächste Release-Version anhebt (Upgrade) (z. B. 15.2 -> 15.3).

Wenn Sie bisher openSUSE 15.1 oder älter einsetzen, können Drittanbieter- oder OBS-Repositories Probleme verursachen, weshalb es empfohlen wird, sie zu deaktivieren oder zu entfernen, bevor man fortfährt. Ab openSUSE 15.2 (oder neuer) gilt dieser Hinweis nicht mehr!

Vor dem Start

Die aktuelle list of annoying bugs für die neue Version, sollte vor dem Upgrade gelesen worden sein. Einige Fehler können den Aktualisierungsprozess beeinflussen. Normalerweise ist neben dem Fehler eine Lösung oder ein Workaround aufgelistet. So kann man sicherstellen, dass man auf kommende Probleme vorbereitet ist.

Man sollte auch die Release Notes gelesen haben, die Änderungen in der neuen Version auflisten.

Kommandozeile

Das folgende Beispiel zeigt das Upgrade von Leap 15.2 auf 15.3.

Wenn im Folgenden ein Alias benötigt wird, kann jede eindeutige ID verwendet werden (Zahl, Name, ...).

5. Repositories updaten

Der folgende Befehl legt ein Backup aller Repos an:
cp -Rv /etc/zypp/repos.d /etc/zypp/repos.d.old


Der nächste Befehl stellt die Repos auf die neue Version um (auch hier entsprechend die Versionen einsetzen):

sudo sed -i 's/15.2/15.3/g' /etc/zypp/repos.d/*.repo

6. Alle Repositories auf die neue Version aktualisieren

zypper --gpg-auto-import-keys ref

Achte hier auf Fehlermeldungen. Vielleicht hat sich ein Pfad geändert, den Du mit dem Browser heraus finden kannst (eine Ebene höher springen, bis wieder Verzeichnisse angezeigt werden). Anderenfalls ist es besser, das Repository jetzt zu deaktivieren oder zu löschen.

7. Distributions-Upgrade durchführen

Warnung!Es wird dringend empfohlen, das Upgrade außerhalb des grafischen X-Window-Modus auszuführen. Der Befehl sollte daher entweder von Runlevel 3 (Text + Netzwerk) oder einer virtuellen Konsole aus gestartet werden. Leider ist die WLAN-Verbindung oft nur in Runlevel 5 verfügbar, so dass eine virtuelle Textkonsole am besten ist, wenn man hinter den Kulissen in der Grafikkonsole eingeloggt bleibt. Um auf Runlevel 3 zu wechseln, siehe SDB:Switch_runlevel. Um in Runlevel 5 zu bleiben, aber eine "virtuelle Konsole" zu verwenden, drückt man z.B. Strg-Alt-F1.
Um zuerst alle Pakete herunterzuladen und sie dann zu installieren (was sicherer ist), verwendet man:
zypper dup --download-in-advance

Um gleichzeitig Pakete herunterzuladen und zu installieren (was schneller geht), verwendet man:

zypper dup
Wenn man das Distributions-Upgrade vor einem offiziellen Release-Datum durchführt hat man möglicherweise einen Release Candidate (RC) oder eine Meilenstein-Version installiert. Dann muss man den letzten Schritt (zypper dup) wiederholen, um die endgültige Version zu erhalten

8. Neustart

Nach dem Upgrade wird ein Neustart empfohlen, um den neuen Kernel und die neuen Programme zu laden.

9. Extra Repositories

Falls Du oben Drittanbieter-Repositories deaktiviert oder gelöscht hast, kannst Du sie jetzt wieder hinzufügen (sofern noch benötigt):

zypper addrepo --name <name> <url> <alias>
Oder wenn man die URL einer .repo Datei hat:
zypper ar <url.repo>

Anschließend

Enjoy the new system ;-)

Im laufenden Betrieb sollte man von Zeit zu Zeit zypper up ausführen, um sicherzustellen, dass die neuesten verfügbaren Pakete aus den verschiedenen Repositories installiert werden. YOU (Yast Online Update) behandelt nur Sicherheitsupdates aus den offiziellen Repositories.


Externe Links

Bugs: Upgrade

Aktuell bestehende Bugs und Lösungsansätze sind auf der Seite Most annoying Bugs gelistet. Flagge-Vereinigtes Koenigreich.png

openSUSE Foren