Aktualisierung von AlmaLinux und Rocky Linux auf eine neue Hauptversion mit ELevate

Linux 7 Min. Lesezeit

Die Hauptversionen von AlmaLinux und Rocky Linux erhalten über einen langen Zeitraum Sicherheitsupdates (Version 8 bis 2029, Version 9 bis 2032), doch die neueren Softwareversionen (PHP, Datenbanken, Programmbibliotheken) erscheinen stets für die jeweils aktuellste Hauptversion. Der Server muss nicht neu installiert werden: Mit dem ELevate-Tool kann er direkt vor Ort aktualisiert werden. ELevate basiert auf dem Red Hat Leapp-Framework und ersetzt die Pakete durch die Pakete der nächsten Hauptversion. Es kann jeweils nur eine Hauptversion übersprungen werden: Der Weg von Version 8 zu Version 10 führt über Version 9.

Das Update von AlmaLinux 9 auf 10 haben wir im Oktober 2026 auf einer virtuellen Maschine mit AlmaLinux 9.8 von Anfang bis Ende durchgeführt (auf der aarch64-Architektur mit 2 GB Arbeitsspeicher); die in diesem Artikel aufgeführten Ergebnisse stammen aus diesem Test. Die Schritte von 8 auf 9 haben wir nicht getestet; diese folgen der Dokumentation von ELevate.

Dieser Artikel richtet sich an Betreiber eigener VPS- oder dedizierter Server. Informationen zur Aktualisierung von CloudLinux-Servern sowie zu cPanel- und Plesk-Servern finden Sie im Artikel „Aktualisierung von CloudLinux von Version 8 auf 9 mit ELevate“; auf cPanel-Servern muss das cPanel-eigene Skript „elevate-cpanel“ verwendet werden – wenden Sie die hier beschriebenen Schritte bitte nicht an.

Bevor Sie beginnen

  • Erstellen Sie eine vollständige Sicherung oder einen Snapshot des Servers. Nach einem fehlgeschlagenen Update ist die Wiederherstellung die sicherste Lösung.
  • Stellen Sie einen von SSH unabhängigen Zugriff sicher, beispielsweise über die VPS-Konsole. Während des Updates wird der Server neu gestartet, und sollte dabei ein Fehler auftreten, können Sie über SSH keinen Zugriff mehr darauf erhalten.
  • Rechnen Sie mit Ausfallzeiten. Der Paketausgleich nach dem Neustart dauerte im Test 3 Minuten; auf einem Server mit vielen Paketen und einer langsameren Festplatte kann dies auch eine halbe bis eineinhalb Stunden dauern.
  • Es muss ausreichend Arbeitsspeicher vorhanden sein. Leapp bereitet die Pakete des Zielsystems in einer isolierten Umgebung vor, wofür viel Arbeitsspeicher benötigt wird. Im Test wurde der Vorgang bei 2 GB Arbeitsspeicher ohne Swap vom OOM-Killer abgebrochen („Out of memory: Killed process … (dnf) … anon-rss:1486780kB“), und im Bericht erschien die Fehlermeldung „Unable to install target ‘almalinux’ 10 userspace packages“. Nach dem Einrichten einer 2-GB-Swap-Datei lief der Vorgang fehlerfrei ab; die Erstellung dieser Datei wird im Artikel „Speicher knapp: OOM-Killer und Swap-Datei“ beschrieben.
  • Überprüfen Sie die externen Repositories (Befehl „dnf repolist“). Die EPEL-Pakete werden von ELevate verwaltet; im Test ist auch EPEL auf die Version 10 umgestellt worden. Entfernen Sie vor dem Update die Pakete aus anderen externen Repositories (z. B. Remi, ELRepo, MariaDB, Docker) und installieren Sie diese anschließend erneut.
  • Aktualisieren Sie das System und starten Sie es neu, damit der neueste Kernel ausgeführt wird:

    sudo dnf update -y
    sudo reboot
    

Führen Sie die Befehle in einer tmux- oder screen-Sitzung aus, damit sie nicht durch eine Unterbrechung der SSH-Verbindung unterbrochen werden (siehe: Ausführen von Befehlen bei einer unterbrochenen SSH-Verbindung).

1. Installation von ELevate

sudo dnf install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm

Der Befehl installiert das Repository, das der aktuellen Hauptversion entspricht. Anschließend werden die Leapp-Pakete und das Datenpaket der Ziel-Distribution installiert:

# AlmaLinux 9-re (8-ról) vagy AlmaLinux 10-re (9-ről)
sudo dnf install -y leapp-upgrade leapp-data-almalinux

# Rocky Linux 9-re (8-ról)
sudo dnf install -y leapp-upgrade leapp-data-rocky

Im Test auf AlmaLinux 9 installierte „leapp-upgrade“ das Paket „leapp-upgrade-el9toel10“.

2. Vorabprüfung

sudo leapp preupgrade

Dieser Schritt nimmt keine Änderungen am System vor, sondern prüft lediglich, ob das Update durchgeführt werden kann. Beim ersten Durchlauf wird fast immer ein Fehler gemeldet; dies ist zu erwarten. Das Ergebnis wird in die Datei „/var/log/leapp/leapp-report.txt“ geschrieben:

sudo less /var/log/leapp/leapp-report.txt

In dem Bericht verhindern die mit „Risk Factor: high (inhibitor)“ gekennzeichneten Einträge die Aktualisierung; diese müssen Sie beheben. Der Bericht beschreibt für jeden Eintrag die empfohlene Lösung. Führen Sie den Befehl „leapp preupgrade“ so lange erneut aus, bis in der Zusammenfassung „Inhibitors: 0“ und „Errors: 0“ angezeigt werden.

Was im 9 → 10-Test angegeben wurde

  • Legacy network configuration found (inhibitor): Die Netzwerkkonfiguration liegt im alten ifcfg-Format vor (/etc/sysconfig/network-scripts/ifcfg-eth0), das von der Hauptversion 10 nicht mehr gelesen wird. Der im Bericht angegebene Befehl konvertiert die Konfiguration in das eigene Format des NetworkManagers:

    sudo nmcli connection migrate /etc/sysconfig/network-scripts/ifcfg-eth0
    

    Im Test wurde diese Einstellung anschließend in die Datei „/etc/NetworkManager/system-connections/System eth0.nmconnection“ übernommen, und das Netzwerk funktionierte auch nach dem Update weiterhin.

  • „Packages not signed by the distribution vendor found on the system“ (high): Eine Liste der aus externen Repositories installierten Pakete (im Test die Pakete „remi-release“, „elrepo-release“ sowie die „Remi php84-*“-Pakete). Diese wurden entfernt (sudo dnf remove 'php84-*' remi-release elrepo-release).
  • Berkeley DB (libdb) has been detected (mittel): In der Hauptversion 10 ist libdb nicht mehr enthalten. Dies ist nur dann zu beachten, wenn eine eigene Anwendung eine Berkeley-DB-Datenbank verwendet.
  • SElinux will be set to permissive mode (low): Für die Dauer des Updates wird SELinux in den permissiven Modus versetzt; anschließend muss es wieder zurückgeschaltet werden (siehe Punkt 4).

Was beim Update von 8 auf 9 häufig angezeigt wird

  • Root-Anmeldung mit Passwort: Standardmäßig ist es unter AlmaLinux 9 nicht möglich, sich als Root-Benutzer über SSH mit einem Passwort anzumelden. Sollten Sie sich bisher auf diese Weise angemeldet haben, würden Sie sich nach dem Update selbst aussperren. Erstellen Sie einen eigenen Benutzer (siehe: Benutzer anlegen und sudo-Berechtigung erteilen) oder fügen Sie die Zeile „PermitRootLogin yes“ ausdrücklich in Ihre SSH-Einstellungen ein.
  • Zu beantwortende Fragen: Wenn Leapp eine Frage stellt, wird diese in die Datei „/var/log/leapp/answerfile“ geschrieben. Die Antwort können Sie mit dem Befehl „leapp answer“ eingeben, zum Beispiel:

    sudo leapp answer --section check_vdo.confirm=True
    

3. Das Update

sudo leapp upgrade
sudo reboot

Der erste Befehl lädt die Pakete der neuen Hauptversion herunter und bereitet das Update vor (im Test dauerte dies 4 Minuten). Am Ende wird Folgendes angezeigt: „Starten Sie das System neu, um mit dem Upgrade fortzufahren. … Stellen Sie sicher, dass Sie Konsolenzugriff haben, um den eigentlichen Upgrade-Vorgang zu verfolgen.“ Der nächste Start erfolgt automatisch mit dem Eintrag „ELevate-Upgrade-Initramfs“ (dies wird durch den Befehl „sudo grubby --default-title“ angezeigt), und dort findet der Austausch der Pakete statt, woraufhin der Server erneut neu gestartet wird. Unterbrechen Sie den Vorgang nicht; Sie können ihn über die Konsole verfolgen:

Das ELevate-Update auf der Konsole: Leapp führt im initramfs nacheinander die Phasen „InitRamStart“, „LateTests“, „Preparation“ und „RPMUpgrade“ aus.

Im Test antwortete der Server bereits 185 Sekunden nach dem Neustart über SSH als AlmaLinux 10.2. Sollte der Server auch nach zwei Stunden nicht antworten, ist das Update wahrscheinlich hängengeblieben; überprüfen Sie bitte die Konsole oder stellen Sie den Systemzustand aus dem Backup wieder her.

4. Nach dem Update

Überprüfen Sie die Version und die Dienste:

cat /etc/almalinux-release
uname -r
systemctl --failed

Im Test: „AlmaLinux release 10.2 (Lavender Lion)“, „6.12.0-…el10_2“; es wurden keine Fehler festgestellt.

SELinux wieder aktivieren

Nach dem Update verbleibt SELinux im „Permissive“-Modus (in der Datei /etc/selinux/config steht „SELINUX=permissive“). Stellen Sie den Modus wieder um und starten Sie den Server neu:

sudo sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config
sudo reboot

Nach dem Neustart lautet die Ausgabe von „getenforce“ „Enforcing“; beim Test trat keine einzige SELinux-Sperre auf (sudo ausearch -m avc -ts boot). Sollte dies dennoch der Fall sein, hilft Ihnen der Artikel „SELinux: Warum erhalte ich die Fehlermeldung ‚Permission denied‘?“ weiter.

Reinigung

Von den Paketen der alten Hauptversion bleiben die alten Kernel und die Leapp-Pakete erhalten:

rpm -qa | grep -E '\.el9'

dnf entfernt die alten Kernel:

sudo dnf remove $(rpm -qa | grep -E '^kernel.*\.el9')

Die Pakete „Leapp“ und „ELevate“ konnten im Test aufgrund eines Abhängigkeitskonflikts mit „dnf remove“ nicht entfernt werden („conflicting requests“, „problem with installed package python3-leapp“), während der einfache Befehl „rpm -e“ dies jedoch ermöglichte:

sudo rpm -e $(rpm -qa | grep -iE 'leapp|elevate')

Falls der Befehl „sudo grubby --info=ALL | grep ^title“ noch einen alten Kernel auflistet, löschen Sie den Eintrag (sudo grubby --remove-kernel=/boot/vmlinuz-<régi verzió>). Aktualisieren Sie anschließend das System und überprüfen Sie die Paketdatenbank:

sudo dnf update
dnf check

Bitte installieren Sie die zuvor entfernten externen Pakete (Remi, ELRepo usw.) nun erneut aus den Repositories für die neue Hauptversion.

AlmaLinux 10 und ältere Prozessoren

Die x86_64-Version von AlmaLinux 10 erfordert standardmäßig einen neueren Prozessor (x86-64-v3-Level); für ältere Prozessoren wird eine separate x86-64-v2-Version bereitgestellt. Bitte prüfen Sie vor dem Update von 9 auf 10 in der AlmaLinux ELevate-Dokumentation, welche Version und welcher Update-Pfad für Ihren Server zutrifft. Die unterstützte Prozessorstufe lässt sich auf dem aktuellen System mit dem Befehl „/lib64/ld-linux-x86-64.so.2 --help | grep supported“ anzeigen.

Zurück: Linux-Artikel (62)