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.
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.