Erst vor kurzem ist die neueste openSUSE-Distribution herausgekommen und nun will man die Distribution via „zypper dup“ upgraden. Die meisten openSUSE-User müssen erstmal nach einer Anleitung im Internet suchen und diese dann Schritt für Schritt durchgehen. Das kann eine einfache oder auch eine komplizierte Angelegenheit werden.
Aus diesem Grund habe ich ein Skript upgrade-opensuse.sh entwickelt, dass alle notwendigen Schritte eines Distributionsupgrades automatisch durchführt. Die Vorgehensweise des Skript ist ganz grob an das Upgrade-Tool do-release-upgrade von Ubuntu angelehnt. Wenn alle Pakete von zypper korrekt aufgelöst werden kann, ist es sogar möglich, dass der Upgrade-Prozess in einem Rutsch durchläuft und man am Ende nur noch neustarten muss. Das Skript merkt sich auch die Stelle, an der der Upgrade-Prozess abgebrochen wurde und wird beim erneuten Ausführen an der letzten Stelle fortfahren. So kann man zwischendurch ein Problem beheben und anschließend mit dem Upgrade-Prozess fortfahren.
Folgende Schritte werden durchgeführt:
- Ermittelung der eingesetzten openSUSE-Version.
- Überprüfung der Internetverbindung.
- Ermittelung der neuesten openSUSE-Version.
- Backup vom /etc Verzeichnis.
- Umbenennung des Verzeichnis der eingebunden Repos /etc/zypp/repos.d nach /etc/zypp/repos.d.upgrade.
- Hinzufügen der Online-Repos (OSS, NON-OSS, OSS Update, NON-OSS Update) von der neuesten openSUSE-Version.
- Upgrade der Distribution via zypper dup (Ohne Community-Repos, um ungewollte VendorChanges zu vermeiden).
- Hinzufügen aller vormals aktivierten Community-Repos.
- Temporäre Modifizierung der zypper Konfiguration, um VendorChanges zu erlauben.
- Überprüfung von alten openSUSE-Pakete im System. Es wird versucht, die alten Pakete durch neuere Pakete zu ersetzen.
- Rückgangig machen der temporäre Modifizierung der zypper Konfiguration.
- Alte openSUSE-Pakete, die nicht aktualisiert werden konnten, werden endgültig entfernt.
- Auflistung aller neuen bzw. modifizierten Konfigurationsdateien (*.rpmnew, *rpmsave).
Alle Vorgänge werden protokolliert, um später nachzuvollziehen, was genau am System verändert wurde.
Folgende selbsterklärenden Logdateien werden erzeugt:
- upgrade-opensuse.zypper-dup-output
- upgrade-opensuse.old-packages-output
- upgrade-opensuse.zypper-reinstall-packages-output
- upgrade-opensuse.remove-old-packages-output
- upgrade-opensuse.zypper-rm-packages-output
- upgrade-opensuse.list-new-and-old-config-files
Wichtiger Hinweis: Vor einem Distributionsupgrade bitte unbedingt ein Backup machen, um im Bedarfsfall auf ein aktuelles Backup zurückgreifen zu können! Außerdem gibt es z.B. RPM Pakete von Drittanbietern wie z.B. AMD Catalyst, NVIDIA, VirtualBox, CrossOver, HumbleBundle-Games, usw., die während des Upgrade-Prozess nicht angerührt werden und von Hand aktualisiert werden müssen.
Downloads:
- Skript: upgrade-opensuse.sh
- SHA1: upgrade-opensuse.sh.sha1
Das Skript wird via root ausgeführt und fängt sofort mit der Arbeit an. Es gibt zu Beginn ein Zeitfenster von 5 Sekunden, in der noch ein unkritischer Abbruch mit STRG+C möglich ist.
sudo sh upgrade-opensuse.sh
-h | Die Hilfe anzeigen lassen |
-n/–non-interactive | Keine Fragen stellen, benutze automatisch Standard-Antworten. (zypper Option) |
-r/–reset | Beginne das Disributionsupgrade von vorne (Die Option bitte vorsichtig verwenden!) |
-V | Version des Skript anzeigen |
Feedbacks sind wie immer willkommen.
War dieser Artikel für dich hilfreich und/oder konnte dein Problem lösen? Wie wäre es mit einer kleinen Spende (Flattr, Paypal oder Überweisung) für den Erhalt des Blogs und zur Förderung weiterer interessanter Artikel und Skripte? Zudem ist mit jeder Spende gewährleistet, dass der Blog werbefrei ist und auch in Zukunft werbefrei bleiben wird. Ich sage schon mal an alle Spendern herzlichen Dank.