Upgrade von openSUSE Leap 15.2 auf openSUSE Leap 15.3

  • (Dateisystem ext4 – was das Dateisystem damit zu tun hat – dazu am Ende mehr)


    Allgemeines zu Repositories – kurz Repo(s)

    Wenn Software beispielsweise mit „zypper“ oder mit „Yast“ installiert wird, so holt sich das System die Pakete aus diversen Softwarequellen – den sogenannten Repositories. Das System muss ja „wissen“ wo es Software herbekommt.


    Außer den Standard-Repositories gibt es eine Vielzahl weiterer Softwarequellen, welche man einbinden kann, falls gewünschte Software nicht in den Standard-Repositories enthalten ist.


    Grundsätzlich aber gilt, je weniger zusätzliche Repositories, desto „stabiler“ das System (außer, man weiß was man tut und achtet stets auf Kompatibilität und Priorisierung); Priorität bedeutet, wenn gleiche Programme in mehreren Repos enthalten sind, holt sich das System die Software aus dem Repo mit der höheren Prio (Standard-Prio ist 99 und je KLEINER die Zahl, desto HÖHER die Prio).


    Alle Repositories findet ihr unter /etc/zypp/repos.d/ als reine Textdateien. In diesen Textdateien ist u.a. definiert die Priorität, der Pfad, ob das Repo aktiviert ist usw..


    Früher (vor openSUSE Leap 15.2) stand in den Repositories unter „baseurl“ in Klartext die Version des aktuellen Betriebssystems wie z.B. „15.2“. Heute jedoch ist es Standard, dass anstelle der Version "15.2" eine Release-Variable "$releasever" enthalten ist. Diese Variable hat den Vorteil, dass auch in Zukunft, mir sehr wenig Aufwand, alle Repositories, die diese Variable enthalten, auf eine neue openSUSE Version, wie z.B. 15.3, umgestellt werden können, um ein Upgrade, auf die nächst höhere openSUSE Leap Version, durchzuführen.


    Es kann aber sein, dass in einigen Repos die Variable „$releasever“ enthalten ist und in anderen Repos die Version "15.2" als Klartext (passiert, wenn man z.B. immer wieder Upgrades gemacht hat – über viele Versionen hinweg und / oder die Repos manuell angepasst hat).



    Also vorher alle Repositories anpassen und auch kontrollieren

    Das machen wir in der Konsole als Root mit dem Befehl:

    Code
    sed -i 's/15.2/${releasever}/g' /etc/zypp/repos.d/*.repo

    Dieser Befehl guckt sich alle Repositories unter…

    etc/zypp/repos.d/

    ...an und macht aus „15.2“ einfach die Variable „$releasever“ (heutiger Standard). Alles andere bleibt wie es ist.


    Kontrolliert das einfach mal...

    Öffnet dazu z.B. Dolphin und navigiert zu:

    etc/zypp/repos.d/

    Dort findet ihr alle Repos als einfache Textdateien.

    So sollte z.B. jetzt die Adresse eines Update-Repos aussehen:

    baseurl=http://download.opensuse.org/update/leap/$releasever/oss/

    Hier sehen wir, dass die Variable „$releasever“ eingetragen ist und nicht die openSUSE-Version „15.2“.

    Vor der Änderung stand dort noch:

    baseurl=https://download.opensuse.org/update/leap/15.2/oss/

    Schaut euch jetzt auch alle anderen Repos an.


    Ob die Repos, mit der neuen Variable „$releasever“ auch wirklich funktionieren, kontrollieren wir in der Konsole mit:

    Code
    zypper lr -d

    Obwohl in den Repos selbst die Variable „$releasever“ eingetragen ist, sehen wir jetzt in der Konsole wieder die aktuelle Version des Betriebssystems "15.2". Mit gedrückter STRG Taste könnt ihr den Pfad der einzelnen Repos anklicken und im Browser sollte sich ein Fenster mit Inhalten öffnen. Kommt im Browser die Meldung „Error 404“, stimmt etwas mit dem Pfad im Repo nicht und muss spätestens jetzt korrigiert werden.

    Auch ein...

    Code
    zypper ref
    Code
    zypper lu

    ...als Root darf hier keine Fehler zeigen.

    (alle Repos müssen funktionieren)


    Bis zu diesem Punkt haben wir noch immer ein normales openSUSE Leap 15.2. Lediglich die Repos wurden durch den Eintrag der Variable „$releasever“ auf den heutigen Standard gebracht.



    Das eigentliche Upgrade von openSUSE Leap 15.2 auf openSUSE Leap 15.3

    Es wird empfohlen, das Upgrade in einem echten Terminal durchzuführen. Wir bleiben aber angemeldet (damit der NetworkManager seine Internetverbindung beibehält) und wechseln nun in einen echten Terminal mit:

    STRG+ALT+F!

    Dort melden wir uns an:

    Benutzernamen eingeben, ENTER und anschl. das Passwort blind eingeben und wieder mit ENTER bestätigen.

    Es geht direkt weiter und wir müssen Root werden:

    Das machen wir mit „su -“ (ohne Anführungsstriche) - ENTER und wieder blind das entsprechende Root-Passwort eingeben gefolgt von ENTER. Nun sind wir Root im echten Terminal.


    Der folgende Befehl bereitet nun alles für openSUSE Leap 15.3 vor:

    Code
    zypper --releasever=15.3 ref


    Das eigentlich Upgrade, auf openSUSE Leap 15.3, starten wir nun mit:

    Code
    zypper --releasever=15.3 dup


    Dieser Vorgang kann schon mehrere Minuten dauern. Wenn alles fertig ist, fahren wir den PC herunter mit:

    Code
    systemctl poweroff --now


    Wenn alles geklappt hat, sollte nun openSUSE Leap, in der Version 15.3, vorhanden sein.


    An dieser Stelle sei angemerkt, dass man ein Upgrade von Leap 15.2 auf 15.3 auch mit einem Boot-Stick machen kann (vom Stick starten und „Upgrade“ auswählen). Es gibt viele Möglichkeiten. Die „sauberste“ Variante ist natürlich immer eine komplette Neuinstallation. Allerdings müssen dann manuell alle Programme erneut installiert werden und zuvor gesicherte Daten müssen ebenfalls wiederhergestellt werden. Jeder, wie er mag.


    Egal, welchen Weg man geht... BACKUP – BACKUP – BACKUP

    Es kann immer etwas schief gehen und…

    ...unverhofft kommt oft ;)


    PS:

    Ganz oben schrieb ich vom Dateisystem. Wer mit BTRFS arbeitet, sollte sich folgende Anleitung zusätzlich anschauen (Punkt 3):

    https://en.opensuse.org/SDB:System_upgrade



    So, jetzt aber - wünsche allen:

    Code
    cat /etc/motd

    Für den Inhalt des Beitrages 291819 haftet ausdrücklich der jeweilige Autor: sterun