====== openSUSE Distributions-Upgrade ======
Das Anheben einer Version von openSUSE Leap zur nächsten (oder gar übernächsten) ist seit Einführung von Leap ein Kinderspiel und klappt in aller Regel auch problemlos.
===== bis Leap 15.3 =====
===== ab Leap 15.3 =====
Statt hartcodierter Versionsnummern ist openSUSE dazu übergegangen in den Repository-Dateien mit der Variablen ''$releasever'' zu arbeiten. Das kann mittels **//zypper//** auf der Kommandozeile dazu genutzt werden um ein Distributions-Upgrade vorzunehmen ohne die Repo-Dateien anpassen zu müssen, ausgenommen beim ersten Mal.
Im ersten Schritt muss kontrolliert werden, ob alle Update-Repositories aktiviert respektive vorhanden sind:
invis:~ # zypper repos -u
Die Repository-Prioritäten sind ohne Effekt. Alle aktivierten Repositorys teilen sich die gleiche Priorität.
# | Alias | Name | Enabled | GPG Check | Refresh | URI
---+---------------------------------+-------------+-----------+-----------------+----------------+-------------------------------------------------------------------------
1 | download.opensuse.org-non-oss | Haupt-Rep-> | Ja | (r ) Ja | Ja | http://download.opensuse.org/distribution/leap/15.3/repo/non-oss/
2 | download.opensuse.org-non-oss_1 | Aktualisi-> | Ja | (r ) Ja | Ja | http://download.opensuse.org/update/leap/15.3/non-oss/
3 | download.opensuse.org-oss | Haupt-Rep-> | Ja | (r ) Ja | Ja | http://download.opensuse.org/distribution/leap/15.3/repo/oss/
4 | download.opensuse.org-oss_1 | Hauptaktu-> | Ja | (r ) Ja | Ja | http://download.opensuse.org/update/leap/15.3/oss
5 | openSUSE-${releasever}-0 | openSUSE--> | Ja | (r ) Ja | Ja | http://download.opensuse.org/distribution/leap/15.3/repo/oss/
6 | repo-backports-debug-update | Update re-> | Nein | ---- | ---- | http://download.opensuse.org/update/leap/15.3/backports_debug/
7 | repo-backports-update | Update re-> | Ja | (r ) Ja | Ja | http://download.opensuse.org/update/leap/15.3/backports/
8 | repo-debug | openSUSE--> | Nein | ---- | ---- | http://download.opensuse.org/debug/distribution/leap/15.3/repo/oss/
9 | repo-debug-non-oss | openSUSE--> | Nein | ---- | ---- | http://download.opensuse.org/debug/distribution/leap/15.3/repo/non-oss/
10 | repo-debug-update | openSUSE--> | Nein | ---- | ---- | http://download.opensuse.org/debug/update/leap/15.3/oss/
11 | repo-debug-update-non-oss | openSUSE--> | Nein | ---- | ---- | http://download.opensuse.org/debug/update/leap/15.3/non-oss/
12 | repo-sle-debug-update | Update re-> | Nein | ---- | ---- | http://download.opensuse.org/debug/update/leap/15.3/sle/
13 | repo-sle-update | Update re-> | Ja | (r ) Ja | Ja | http://download.opensuse.org/update/leap/15.3/sle/
14 | repo-source | openSUSE--> | Nein | ---- | ---- | http://download.opensuse.org/source/distribution/leap/15.3/repo/oss/
15 | repo-source-non-oss | openSUSE--> | Nein | ---- | ---- | http://download.opensuse.org/source/distribution/leap/15.3/repo/non-oss/
In meinem Fall sind es die Repos 2,4,7 und 13 (2 und 4 sind versehentlich Doppel, eines davon kann problemlos gelöscht werden). Bei allen muss in der Spalte "enabled" "ja", respektive "yes" stehen. Ist das nicht der Fall müssen deaktivierte Repos aktiviert werden:
invis:~ # zypper modifyrepo --enable repo-sle-update
Als Parameter nach ''--enable'' kann sowohl der Name als auch die Nummer des entsprechenden Repos angegeben werden.
Es müssen mindestens 3 verschiedene Update-Repos "repo-update" (Hauptaktualisierungsrepository), "repo-backports-update" und "repo-sle-update" vorhanden sein. Fehlt eines oder mehrere, müssen diese eingerichtet werden. Hier gezeigt am Beispiel "repo-update"
invis:~ # zypper addrepo --check --refresh --name 'repo-update' http://download.opensuse.org/update/leap/15.3/oss/ repo-update
Gleichermaßen funktioniert es bei den anderen Updates, es muss lediglich der entsprechende Name ersetzt werden.
Im folgenden Schritt muss überprüft werden, ob die Versionsnummer der betriebenen Leap-Version noch fix in den Repository-Dateien steht:
invis:~ # grep baseurl /etc/zypp/repos.d/*.repo
Steht in den ausgegebenen Zeilen an irgendeiner Stelle noch "15.3" kann dies wie folgt pauschal in die Variable ''$releasever'' geändert werden:
invis:~ # sed -i 's/15.3/${releasever}/g' /etc/zypp/repos.d/*.repo
Findet sich in einer der zuvor mit **//grep//** erzeugten Ausgabe eine oder mehrere Zeilen in denen die Version noch mit "openSUSE_Leap_15.3" angeben wurde ist "openSUSE_Leap_" zu entfernen. Das kann händisch im Editor erfolgen.
Jetzt können die Repositories dynamisch für Leap Version 15.4 bzw. nachfolgende aufgefrischt werden:
invis:~ # zypper --releasever=15.4 refresh
Treten dabei keine Fehler auf, kann jetzt das eigentliche Distributions-Upgrade erfolgen:
invis:~ # zypper --releasever=15.4 dup --download-in-advance
Im Anschluss an das Upgrade muss der Server neu gestartet werden.