Seit dem 25. Mai 2018 ist openSUSE Leap 15.0 verfügbar. Ein guter Grund mal ein paar Tipps zur Aktualiserung von openSUSE auf eine neue Version zu geben. Da ich für gewöhnlich mithilfe des Installationsmediums aktualisiere beziehen sich meine Tipps primär auf diese Methode. Aber gerade der Hinweis wie man verwaiste Pakete findet ist natürlich auch nach einem sogenannten Live-Upgrade hilfreich.

openSUSE Leap 15.0 ist jetzt verfügbar

Der NVIDIA-Treiber

Meiner Erfahrung nach empfiehlt es sich den NVIDIA-Treiber vor dem Update zu deinstallieren. Bei früheren Versionen von openSUSE habe ich es ansonsten schon erlebt, dass auch nach hinzufügen des NVIDIA-Repositories für die neue Version noch der alte Treiber installiert bleibt. Dieser funktioniert dann allerdings nicht. Linux, bzw. X.org, ist an dieser Stelle zwar hart im Nehmen und nutzt dann automatisch Nouveau, aber dieser kann dem proprietären Treiber von NVIDIA leider nicht annähernd das Wasser reichen.

Sollte das System bereits aktualisiert und Nouveau aktiv sein, so empfiehlt es sich den alten NVIDIA-Treiber mittels zypper remove nvidia* komplett zu deinstallieren und anschließen neu zu installieren. Eine Neuinstallation mittels zypper install --force hat bei mir in der Vergangenheit meißtens nicht den gewünschten Erfolg gebracht.

UEFI

Bei einem System welches sowohl im EFI-Modus als auch im Bios-Kompatibilitätsmodus starten kann ist es wichtig das Upgrade im selben Modus zu starten welchen das alte System nutzt. Bei openSUSE 42.2 endete ich dadurch, dass ich dies nicht getan habe, mit einem nicht bootfähigen System. Allerdings gibt es im Zweifelsfall einen einfachen Ausweg. Einfach auf dem bereits aktualisieren System das Update nochmal im richtigen Modus ausführen. Da alle Pakete schon aktualisiert sind und nur noch der Bootcode korrekt installiert werden muss, geht dies dann auch recht schnell.

Repositories

Bei einem Update mithilfe des Installationsmediums werden alle zusätzlichen Repositories aus dem System entfernt. Dies führt zu einem sauberen Update, kann aber zur Folge haben, dass man anschließend mühsam zusammensuchen muss woher man eine bestimmte Anwendung hatte. Hierzu empfiehlt es sich vor der Aktualisierung einen Überblick zu verschaffen welche Pakete man aus dritten Quellen installiert hat.

Die konfigurierten Repositories

Zypper kann einem mit repos -u die Liste der aktuell konfigurierten Repositories mit ihren URLs ausgeben. So ist es, falls das Repository auch nach dem Update noch benötigt wird, möglich, durch einfaches Ersetzen der Versionsnummer in der URL, an das passende Repository der neuen Version zu kommen. Auf meinem großen Rechner sieht dies dann zum Beispiel so aus:

> zypper repos -u
Die Repository-Prioritäten sind ohne Effekt. Alle aktivierten Repositorys teilen sich die gleiche Priorität.

#  | Alias                           | Name                                                    | Aktiviert | GPG-Überprüfung | Aktualisierung | URI
---+---------------------------------+---------------------------------------------------------+-----------+-----------------+----------------+-------------------------------------------------------------------------------------
1 | code                            | Visual Studio Code                                      | Ja        | (r ) Ja         | Ja             | https://packages.microsoft.com/yumrepos/vscode
2 | download.nvidia.com-leap        | nVidia Graphics Drivers                                 | Ja        | (r ) Ja         | Ja             | http://download.nvidia.com/opensuse/leap/42.3
3 | download.opensuse.org-non-oss   | Haupt-Repository (NON-OSS)                              | Ja        | (r ) Ja         | Ja             | http://download.opensuse.org/distribution/leap/42.3/repo/non-oss/
4 | download.opensuse.org-non-oss_1 | Aktualisierungs-Repository (Nicht-Open-Source-Software) | Ja        | (r ) Ja         | Ja             | http://download.opensuse.org/update/leap/42.3/non-oss/
5 | download.opensuse.org-oss       | Haupt-Repository (OSS)                                  | Ja        | (r ) Ja         | Ja             | http://download.opensuse.org/distribution/leap/42.3/repo/oss/
6 | download.opensuse.org-oss_1     | Hauptaktualisierungs-Repository                         | Ja        | (r ) Ja         | Ja             | http://download.opensuse.org/update/leap/42.3/oss
7 | isv_ownCloud_desktop            | The ownCloud Desktop Client (openSUSE_Leap_42.3)        | Ja        | (r ) Ja         | Ja             | http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/openSUSE_Leap_42.3/
8 | opensuse-guide.org-repo         | Libdvdcss Repository                                    | Ja        | (r ) Ja         | Ja             | http://opensuse-guide.org/repo/openSUSE_Leap_42.3/
9 | packman.inode.at-suse           | Packman Repository                                      | Ja        | (r ) Ja         | Ja             | http://packman.inode.at/suse/openSUSE_Leap_42.3/
10 | repo-debug                      | openSUSE-Leap-42.3-Debug                                | Nein      | ----            | ----           | http://download.opensuse.org/debug/distribution/leap/42.3/repo/oss/
11 | repo-debug-non-oss              | openSUSE-Leap-42.3-Debug-Non-Oss                        | Nein      | ----            | ----           | http://download.opensuse.org/debug/distribution/leap/42.3/repo/non-oss/
12 | repo-debug-update               | openSUSE-Leap-42.3-Update-Debug                         | Nein      | ----            | ----           | http://download.opensuse.org/debug/update/leap/42.3/oss/
13 | repo-debug-update-non-oss       | openSUSE-Leap-42.3-Update-Debug-Non-Oss                 | Nein      | ----            | ----           | http://download.opensuse.org/debug/update/leap/42.3/non-oss/
14 | repo-source                     | openSUSE-Leap-42.3-Source                               | Nein      | ----            | ----           | http://download.opensuse.org/source/distribution/leap/42.3/repo/oss/
15 | repo-source-non-oss             | openSUSE-Leap-42.3-Source-Non-Oss                       | Nein      | ----            | ----           | http://download.opensuse.org/source/distribution/leap/42.3/repo/non-oss/

Installierte Pakete eines Repositories anzeigen

Fragt man sich wozu ein bestimmtes Repository im System ist kann man sich mit zypper search --repo <repository-id> --installed-only die aus einem bestimmten Repository installierten Pakete anzeigen lassen. Am Beispiel des NVIDIA-Repositories sieht das bei mir dann so aus:

> zypper search -r download.nvidia.com-leap -i
Repository-Daten werden geladen...
Installierte Pakete werden gelesen...

S  | Name                      | Zusammenfassung                                                       | Typ
---+---------------------------+-----------------------------------------------------------------------+------
i+ | nvidia-computeG04         | NVIDIA driver for computing with GPGPU                                | Paket
i+ | nvidia-gfxG04-kmp-default | NVIDIA graphics driver kernel module for GeForce 400 series and newer | Paket
i+ | nvidia-glG04              | NVIDIA OpenGL libraries for OpenGL acceleration                       | Paket
i+ | x11-video-nvidiaG04       | NVIDIA graphics driver for GeForce 400 series and newer               | Paket

Verwaiste Pakete aufräumen

Nach dem Update lohnt es sich häufig verwaiste Pakete zu entfernen. Solche kann man mit einer Kombination von zypper search und grep leicht auffinden:

> zypper search --details --installed-only --type package | grep Systempakete
i+ | Desurium                                    | Paket | 0.8.0_rc10-3.1                                       | x86_64 | (Systempakete)

Möchte man ein Paket gerne behalten lohnt es sich mit zypper search --details <Paketname> zu schauen ob es eine andere Version des Paketes in einem der konfigurierten Repsitories gibt. Findet sich dort keine Version, so lohnt meißtens ein Besuch auf https://software.opensuse.org.