Nicht wenige wurden letztes Jahr von der Ankündigung überrascht, dass CentOS 8 nur noch bis Ende diesen Jahres unterstützt wird, genauer bis zum 31.12.2021. CentOS bzw. Red Hat bietet als Alternative CentOS 8 Stream an, in der schon neuere Softwareversionen einfließen und getestet werden, bevor sie in die nächste Red Hat Enterprise Linux-Version übernommen werden. CentOS 8 Stream wird damit zwischen Fedora (Bleeding Edge, unstabil) und RHEL positioniert, wohingegen CentOS immer nach RHEL (stabil, geeignet für den Unternehmenseinsatz) herauskam und dazu kompatibel war.
In der Zwischenzeit sind AlmaLinux und Rocky Linux als weitere mögliche Alternativen zu CentOS (ohne Stream) erschienen, Oracle Linux gibt es schon länger und würde als Ersatz ebenfalls infrage kommen.
Ich möchte nicht die Vor- und Nachteile dieser Distributionen und Lizenzen diskutieren. Wir haben uns für Rocky Linux entschieden.
Jetzt hatten wir aber schon ein paar Server (VMs) unter CentOS 8 installiert, eine VM auf CentOS 8 Stream migriert, eine weitere unter Oracle Linux 8 installiert. Langfristig wäre aber wieder eine einheitliche Plattform wünschenswert. Zum Glück gibt es ein Migrationsskript, um CentOS 8 (Stream), Oracle Linux oder AlmaLinux umzustellen auf Rocky Linux.
Es gibt einige Anleitungen, wie man dieses Skript einsetzen kann, z. B. How to Migrate from CentOS 8 to Rocky Linux 8.
Deshalb in Kürze:
# download migration script and make it executable
wget https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
chmod u+x migrate2rocky.sh
# verify migration
bash migrate2rocky.sh -V
# execute migration
bash migrate2rocky.sh -r
Bei einer VM bietet sich natürlich ein Snapshot für ein "billiges" Rollback an, falls etwas nicht funktionieren sollte. Und tatsächlich habe ich das einmal wirklich gebraucht (weil ich bei den ersten Migrationen den Verify-Schritt nicht gemacht hatte).
Oracle Linux 8
Bei einem Server unter Oracle Linux 8 war eine Bibliothek installiert, die es offenbar unter Rocky Linux so nicht gibt. Da ich das BTRFS aber gar nicht nutze, konnte ich das Paket einfach deinstallieren:
dnf remove libblockdev-btrfs-2.24-5.0.1.el8.x86_64
CentOS 8 Stream mit installiertem TeamViewer Host
Weil das die einzige VM mit CentOS 8 Stream war, bin ich mir nicht sicher, aber ich gehe davon aus, dass die fehlende Bibliothek qt5-qtwebkit-5.212.0-0.42.alpha3 hier als Abhängigkeit vom TeamViewer Host mitinstalliert wurde.
Hier sieht man vielleicht auch den Nachteil der Stream-Distribution: Es werden sehr frühe Versionen von Paketen eingespielt.
Deinstallation vor Migration mit:
dnf remove qt5-qtwebkit-5.212.0-0.42.alpha3.el8.x86_64
CentOS 8 Stream ist anders
Genau diese Politik ist bei der Migration nach Rocky Linux auch in anderer Hinsicht eine Herausforderung.
Ausschnitt aus dem Migrationsprotokoll
Complete!
Error: No matching repo to modify: stream-*.
Failed to disable CentOS Stream repos, please check and disable manually.
CentOS Stream Migration Notes:
Because CentOS Stream leads RockyLinux by the next point release many packages in Stream will have
higher version numbers than those in RockyLinux, some will even be rebased to a new upstream version.
Downgrading these packages to the versions in RockyLinux carries the risk that the older version may not
recognize config files, data or other files generated by the newer version in Stream.
To avoid issues with this the newer package versions from CentOS Stream have been retained. Also the
CentOS Stream repositories have been retained but renamed with a prefix of "stream-" to avoid clashing
with RockyLinux repositories, but these same repos have also been disabled so that future package
installs will come from the stock RockyLinux repositories.
If you do nothing except update to the next point release of RockyLinux when it becomes available then
the packages retained from Stream should be replaced at that time. If you need to update a package from
Stream (eg: to fix a bug or security issue) then you will need to enable the appropriate repository to
do so.
Weil die neueren Paketversionen unter Umständen neue Konfigurationsdateien bzw. neue Einstellungen in der Konfiguration haben, kann man sie nicht einfach durch eine ältere Version ersetzen. Die Richtlinie ist hier: die Stream-Version behalten und wenn es mal in Zukunft in einer späteren Rocky Linux-Version eine neuere Version des Pakets gibt, das dann installieren.