Online-Aktualisierung von Fedora Linux mithilfe des DNF-Systemplugins

Michael Wu, Anthony McGlone, Das Fedora-Dokumentationsteam Version F42 Last review: 2025-08-28

Der Befehl dnf system-upgrade (enthalten in DNF5 und als dnf-plugin-system-upgrade-Plugin für den DNF4-Paketverwalter) dient zum Aktualisieren Ihres Systems auf die aktuelle Version von Fedora Linux. Für Fedora Silverblue und Fedora CoreOS, die rpm-ostree verwenden, finden Sie weitere Informationen in der Dokumentation zu rpm-ostree.

Dies ist die empfohlene Aktualisierungsmethode über die Befehlszeile. Sie funktioniert wie folgt:

  1. Pakete werden heruntergeladen, während das System normal läuft

  2. Das System startet in einer speziellen Umgebung (implementiert als systemd-Ziel) neu, um sie zu installieren.

  3. Nach Abschluss des Vorgangs startet das System neu und verwendet die neue Fedora Linux-Version.

Die Veröffentlichungshinweise lesen

Bevor Sie mit der Aktualisierung beginnen, lesen Sie bitte die Veröffentlichungshinweise der Fedora Linux-Version, auf die Sie aktualisieren. So stellen Sie sicher, dass Sie über wichtige Änderungen, neue Funktionen und mögliche Probleme, die Ihr System beeinträchtigen könnten, informiert sind.

Siehe die neuesten Veröffentlichungshinweise auf: https://docs.fedoraproject.org/de/fedora/latest/release-notes/

Ausführen der Systemaktualisierung

Sichern Sie Ihre Daten, bevor Sie eine Systemaktualisierung durchführen, da jede Systemaktualisierung potenziell Risiken birgt. Laden Sie vorsichtshalber das Fedora Workstation Live-Abbild herunter, falls etwas schiefgeht.

  1. Um Ihre Fedora Linux-Veröffentlichung über die Befehlszeile zu aktualisieren, gehen Sie wie folgt vor:

    sudo dnf upgrade --refresh

    und starten Sie Ihren Computer neu.

    Wichtig: Überspringen Sie diesen Schritt nicht. Systemaktualisierungen sind erforderlich, um Signierschlüssel für höher versionierte Veröffentlichungen zu erhalten, und beheben häufig Probleme im Zusammenhang mit dem Aktualisierungsprozess.

  2. Laden Sie die aktualisierten Pakete herunter:

    sudo dnf system-upgrade download --releasever=43

    Ändern Sie die Zahl in --releasever=, wenn Sie auf eine andere Version aktualisieren möchten. Die meisten Benutzer werden auf die neueste stabile Version, 43, aktualisieren wollen. In manchen Fällen, zum Beispiel wenn Sie derzeit eine ältere Version als 42 verwenden, kann es jedoch sinnvoll sein, direkt auf Fedora Linux 42 zu aktualisieren. Systemaktualisierungen werden offiziell nur über maximal zwei Veröffentlichungsnummern hinweg unterstützt und getestet (zum Beispiel von 41 auf 43). Wenn Sie über mehrere Versionen aktualisieren müssen, empfiehlt es sich, dies in mehreren kleineren Schritten durchzuführen (siehe Abschnitt read more).

    Sie können auch 44 verwenden, um auf eine verzweigte Version („Branched“) zu aktualisieren, oder rawhide, um auf Rawhide zu aktualisieren. Beachten Sie, dass es sich bei beiden nicht um stabile Versionen handelt. Details zum Aktualisierungsprozess und zu häufig auftretenden Problemen im Zusammenhang mit diesen beiden Versionen finden Sie in den entsprechenden Abschnitten auf den oben verlinkten Seiten.

  3. Wenn einige Ihrer Pakete nicht erfüllte Abhängigkeiten haben, wird die Aktualisierung erst fortgesetzt, nachdem Sie sie mit der zusätzlichen Option --allowerasing erneut ausführen. Dies tritt häufig bei Paketen auf, die von Drittanbietern installiert wurden und für die noch keine aktualisierte Paketquelle veröffentlicht wurde. Untersuchen Sie die Ausgabe sorgfältig und prüfen Sie, welche Pakete entfernt werden sollen. Keines davon ist für die Systemfunktionalität zwingend erforderlich, einige könnten jedoch Ihre Produktivität beeinträchtigen.

    • Im Falle nicht erfüllter Abhängigkeiten können Sie manchmal weitere Details sehen, wenn Sie die Option --best zur Befehlszeile hinzufügen.

    • Wenn Sie vor dem erneuten Ausführen von dnf system-upgrade download Pakete manuell entfernen oder installieren möchten, empfiehlt es sich, diese Aktionen mit der dnf-Befehlszeilenoption --setopt=keepcache=1 durchzuführen. Andernfalls wird der gesamte Paketzwischenspeicher nach Ihrer Operation gelöscht, und Sie müssen alle Pakete erneut herunterladen.

  4. Beim Import des neuen GPG-Schlüssels werden Sie aufgefordert, den Fingerabdruck des Schlüssels zu verifizieren. Folgen Sie dazu https://fedoraproject.org/security.

  5. Starten Sie den Aktualisierungsprozess, je nachdem, welche DNF-Version Ihr System verwendet:

Wenn Sie DNF 4 verwenden (Standard in älteren Fedora-Veröffentlichungen):

sudo dnf system-upgrade reboot

Ihr Computer wird dadurch sofort in eine spezielle Aktualisierungsmgebung neu gestartet. Schließen Sie vorher alle Programme und speichern Sie Ihre Arbeit. Es erfolgt kein Countdown und keine Bestätigung.

Wenn Sie DNF 5 verwenden (ab Fedora 41+):

sudo dnf5 offline reboot

Dadurch wird die Aktualisierung offline beim nächsten Systemstart durchgeführt. So brechen Sie die Aktualisierung ab und löschen die heruntergeladenen Dateien:

sudo dnf5 offline clean
  1. Sobald der Aktualisierungsprozess abgeschlossen ist, wird Ihr System ein zweites Mal mit der aktualisierten Fedora Linux-Version gestartet.

Optionale Aufgaben nach der Systemaktualisierung

Dies sind einige der Aufgaben, die Sie nach einer erfolgreichen Aktualisierung erledigen können.

Systemkonfigurationsdateien aktualisieren

Die meisten Konfigurationsdateien befinden sich im Ordner /etc. Wenn Sie die Konfigurationsdateien des Pakets geändert haben, erstellt RPM neue Dateien mit der Endung .rpmnew (die neue Standardkonfigurationsdatei) oder .rpmsave (Ihre alte Konfigurationsdatei wurde gesichert). Sie können nach diesen Dateien suchen oder das Werkzeug rpmconf verwenden, das diesen Vorgang vereinfacht. Um rpmconf zu installieren, geben Sie Folgendes ein:

sudo dnf install rpmconf

Sobald die Installation abgeschlossen ist, geben Sie Folgendes ein:

sudo rpmconf -a

Manche Drittanbieterpakete legen bearbeitete Konfigurationsdateien in /etc/yum.repos.d/ ab. Das Zurücksetzen dieser Dateien auf ihre Originalversionen kann dazu führen, dass Softwareaktualisierungen deaktiviert werden. Bitte überprüfen Sie daher die Konfigurationsdateien in diesem Verzeichnis sorgfältig.

Weitere Informationen finden Sie in den Handbuchseiten (man rpmconf).

Wenn Sie rpmconf verwenden, um die mit den aktualisierten Paketen mitgelieferten Systemkonfigurationsdateien zu aktualisieren, können sich einige Konfigurationsdateien ändern. Nach der Systemaktualisierung sollten Sie überprüfen, ob die Dateien /etc/ssh/sshd_config, /etc/nsswitch.conf, /etc/ntp.conf und weitere wie erwartet funktionieren. Wenn beispielsweise OpenSSH aktualisiert wird, wird sshd_config auf die Standardkonfiguration des Pakets zurückgesetzt. Die Standardkonfiguration des Pakets aktiviert keine Authentifizierung mittels öffentlicher Schlüssel, erlaubt aber die Passwortauthentifizierung.

Den GRUB-Bootloader auf BIOS-Systemen aktualisieren

Systeme mit BIOS-Firmware verfügen über aktualisierte GRUB-RPM-Pakete. Der installierte oder eingebettete Bootloader wird jedoch nicht automatisch aktualisiert. Es empfiehlt sich, ihn zwischen den Fedora-Linux-Versionen zu aktualisieren.

Ermitteln Sie den Geräteknoten, auf dem sich das Verzeichnis /boot/ befindet:

sudo mount | grep "/boot "
/dev/sda4 on /boot type ext4 (rw,relatime,seclabel)

Der Geräteknoten ist /dev/sda4. Installieren Sie den Bootloader neu und geben Sie dabei den Geräteknoten ohne die Nummer an:

sudo grub2-install /dev/sda

Die korrekte Ausgabe sollte lauten:

Installing for i386-pc platform.
Installation finished. No error reported.

Stillgelegte Pakete aufräumen

Mit jeder neuen Veröffentlichung entfernt Fedora einige Pakete aus dem Programm. Dafür gibt es verschiedene Gründe: Die Pakete sind veraltet, die zugehörige Entwicklerplattform wurde eingestellt oder der zuständige Entwickler tritt zurück. Fedora stellt diese Pakete nicht mehr bereit; sie befinden sich jedoch weiterhin auf Ihrem System. Für diese Pakete werden keine Aktualisierungen mehr bereitgestellt. Es wird dringend empfohlen, sie zu entfernen.

Wenn Sie eine Systemaktualisierung über eine Veröffentlichungsstufe durchführen (zum Beispiel von Fedora Linux 42 auf 43), führen Sie die folgenden Befehle aus:

sudo dnf install remove-retired-packages
remove-retired-packages

Wenn Sie eine Aktualisierung über zwei Veröffentlichungsstufen hinweg durchführen (zum Beispiel von Fedora Linux 41 auf 43), müssen Sie die alte Versionsnummer an remove-retired-packages übergeben:

sudo dnf install remove-retired-packages
remove-retired-packages 41
Systemaktualisierungen über mehr als zwei Veröffentlichungsstufen hinweg werden nicht unterstützt.

Alte Pakete entfernen

Paketduplikate (Pakete, von denen mehrere Versionen installiert sind) können Sie mit folgendem Befehl anzeigen:

sudo dnf repoquery --duplicates

Sie können diese Pakete folgendermaßen entfernen:

sudo dnf remove --duplicates

Dieser Befehl verwendet die standardmäßige dnf-Binärdatei Ihres Systems: * Auf Fedora 38: Verweist auf DNF4 * Auf Fedora 39 und neuer: Verweist auf DNF5

Die ältere Version DNF4 ist bei Bedarf als dnf4 verfügbar, für den allgemeinen Gebrauch wird jedoch der Standardbefehl dnf empfohlen.

Führen Sie zuerst sudo dnf upgrade aus, da diese Liste nur gültig ist, wenn Ihr System vollständig aktualisiert ist. Andernfalls sehen Sie eine Liste installierter Pakete, die aufgrund verfügbarer Aktualisierungen nicht mehr in den Paketquellen vorhanden sind. Diese Liste kann auch Pakete enthalten, die von Drittanbietern bereitgestellt wurden, deren Paketquellen möglicherweise nicht aktualisiert wurden.

Bei Paketen aus den offiziellen Paketquellen sollte die neueste Version installiert sein. Einige Pakete, die sich noch auf Ihrem System befinden, sind jedoch möglicherweise nicht mehr in den Paketquellen verfügbar. Eine Liste dieser Pakete erhalten Sie mit folgendem Befehl:

sudo dnf list --extras

Wenn Sie ein Paket sehen, das Sie nicht benötigen oder verwenden, können Sie es mit folgendem Befehl entfernen:

sudo dnf remove $(sudo dnf repoquery --extras --exclude=kernel,kernel-\*,kmod-\*)

Nicht mehr benötigte Pakete können Sie sicher entfernen mit:

sudo dnf autoremove

DNF entscheidet, dass ein Paket nicht mehr benötigt wird, wenn Sie es nicht explizit zur Installation angefordert haben und es von keiner anderen Anwendung benötigt wird. Das bedeutet jedoch nicht, dass das Paket nutzlos ist oder dass Sie es nicht verwenden. Entfernen Sie nur Pakete, wenn Sie sich dessen sicher sind, dass Sie sie nicht benötigen.

Alte Kernel entfernen

Nachdem Sie den neuesten Kernel gestartet und das System getestet haben, können Sie vorherige Kernel entfernen. Alte Kernel bleiben auch nach dem Befehl dnf autoremove erhalten, um ein unbeabsichtigtes Löschen zu verhindern.

Eine der einfachsten Methoden, veraltete Kernel zu entfernen, ist die Verwendung eines Skripts, das den neuesten Kernel beibehält. Das untenstehende Skript funktioniert immer dann, wenn Fedora einen Kernel aktualisiert, und ist nicht von einer Systemaktualisierung abhängig.

#!/usr/bin/env bash

old_kernels=($(dnf repoquery --installonly --latest-limit=-1 -q))
if [ "${#old_kernels[@]}" -eq 0 ]; then
    echo "No old kernels found"
    exit 0
fi

if ! dnf remove "${old_kernels[@]}"; then
    echo "Failed to remove old kernels"
    exit 1
fi

echo "Removed old kernels"
exit 0

Alte Schlüssel, die für die RPM-Paketsignierung verwendet wurden, bereinigen

Schlüssel älterer Fedora-Veröffentlichungen und Drittanbieter-Paketquellen sammeln sich mit der Zeit in der RPM-Datenbank an. Sie können nicht mehr benötigte Schlüssel aus /etc/yum.repos.d/ entfernen mit:

sudo dnf install clean-rpm-gpg-pubkey
sudo clean-rpm-gpg-pubkey

Nach einer Systemaktualisierung können im Dateisystem verwaiste symbolische Links vorhanden sein. Diese lassen sich durch die Installation des Symlinks-Dienstprogramms und das Löschen der alten Links entfernen.

sudo dnf install symlinks

Nach der Installation des Dienstprogramms können Sie wie unten gezeigt nach defekten symbolischen Links suchen. -r bedeutet rekursiv.

sudo symlinks -r /usr | grep dangling

Nachdem Sie die Liste der defekten symbolischen Links überprüft haben, können Sie diese wie unten gezeigt löschen. -d bedeutet löschen.

sudo symlinks -r -d /usr

Den Rettungskernel aktualisieren

Der Rettungskernel und die initramfs werden von Anaconda während der Systeminstallation generiert. Die initramfs wird bei einem Kernelaktualisierung ebenfalls aktualisiert, der Rettungskernel jedoch möglicherweise nicht. Ob der Rettungskernel aktualisiert wird, hängt von der Systemkonfiguration ab.

Falls der Rettungskernel nicht mehr aktuell ist, führen Sie die folgenden Befehle aus, um ihn neu zu generieren.

sudo rm /boot/*rescue*
sudo kernel-install add "$(uname -r)" "/lib/modules/$(uname -r)/vmlinuz"

Der Wiederherstellungsprozess des Rettungskernels kann durch die Installation des Pakets dracut-config-rescue automatisiert werden.

sudo dnf install dracut-config-rescue

Nach der Installation wird der Rettungskernel so lange neu generiert, wie dracut als initrd-Generator verwendet wird. Weitere Informationen finden Sie in der Datei /usr/lib/kernel/install.d/51-dracut-rescue.install.

Behebung von Problemen nach der Systemaktualisierung

Befolgen Sie diese Schritte nur, wenn Sie Probleme mit Ihrem aktualisierten System haben.

Neuerstellung der RPM-Datenbank

Wenn beim Arbeiten mit RPM/DNF-Werkzeugen Warnungen angezeigt werden, ist Ihre Datenbank möglicherweise beschädigt. Sie können sie neu erstellen, um zu sehen, ob dies Ihre Probleme behebt. Erstellen Sie vorher immer eine Sicherungskopie von /usr/lib/sysimage/rpm. Führen Sie zur Neuerstellung der Datenbank folgenden Befehl aus:

sudo rpm --rebuilddb

Verwendung von distro-sync zur Behebung von Abhängigkeitsproblemen

Das Systemaktualisierungswerkzeug verwendet standardmäßig dnf distro-sync. Falls Ihr System nur teilweise aktualisiert wurde oder Probleme mit Paketabhängigkeiten auftreten, führen Sie dnf distro-sync manuell aus, um zu prüfen, ob das Problem dadurch behoben wird. Dabei wird versucht, die installierten Pakete auf die gleiche Version der Pakete in den aktuell aktivierten Paketquellen zu bringen, selbst wenn dies eine Herunterstufung einiger Pakete erforderlich macht:

sudo dnf distro-sync

Sie können auch die Option --allowerasing verwenden, um Pakete mit nicht erfüllbaren Abhängigkeiten zu entfernen. Überprüfen Sie immer, welche Pakete entfernt werden sollen, bevor Sie dies bestätigen:

sudo dnf distro-sync --allowerasing

Dateien anhand der neuesten SELinux-Richtlinie neu kennzeichnen

Sollten Warnungen bezüglich SELinux-Richtlinien auftreten, verfügen einige Dateien möglicherweise über falsche SELinux-Berechtigungen. Dies kann vorkommen, wenn SELinux zuvor deaktiviert war. Um SELinux auf dem System neu zu aktivieren, führen Sie folgenden Befehl aus und starten Sie das System anschließend neu:

sudo fixfiles -B onboot

Der Bootvorgang wird voraussichtlich lange dauern, da er die SELinux-Berechtigungsbezeichnungen aller Dateien in Ihrem System überprüft und korrigiert.

Häufig gestellte Fragen

Wie kann ich Probleme mit der Systemaktualisierung melden?

  1. Schauen Sie in die Common bugs, um zu prüfen, ob es sich um ein Problem handelt, das der Community bereits bekannt ist.

  2. Suchen Sie in Bugzilla nach einem bereits eingereichten Fehlerbericht für das DNF5- bzw. DNF4-Plug-in.

Falls Sie keinen Bericht finden, der Ihre Symptomen beschreibt, können Sie über die Suchseite einen neuen Bericht erstellen. Bitte befolgen Sie die Anweisungen zur Fehlerberichterstattung in der README-Datei im Github-Repository.

Falls nach der Systemaktualisierung Probleme mit einem bestimmten Paket auftreten, melden Sie bitte einen Fehler für das Paket, mit dem die Probleme auftreten.

Überprüft DNF System Upgrade die Software, die während einer Aktualisierung ausgeführt oder installiert wird?

Ja. Die Paketsignaturschlüssel für neuere Fedora-Linux-Versionen werden an ältere Versionen gesendet, damit DNF die Integrität der heruntergeladenen Pakete überprüfen kann. Sie können diese Funktion bei Bedarf deaktivieren, dies wird jedoch nicht empfohlen, da Sie dadurch anfälliger für Angriffe durch Schadsoftware werden.

Werden Pakete in Drittanbieter-Paketquellen aktualisiert?

Ja, sofern sie wie reguläre DNF-Paketquellen konfiguriert sind und die Versionsnummern nicht fest in der Paketquellen-Datei (üblicherweise unter /etc/yum.repos.d/) codiert sind. Gängige Drittanbieter-Paketquellen wie RPM Fusion sollten funktionieren. Wenn Sie jedoch vor oder kurz nach einer offiziellen Fedora-Linux-Version eine Systemaktualisierung durchführen, sind die Paketquellen-Pfade möglicherweise nicht aktualisiert, und DNF kann die Pakete unter Umständen nicht finden. Normalerweise sollte dies das erfolgreiche Ausführen der Systemaktualisierung nicht verhindern. Sie können Pakete auch später aus der Drittanbieter-Paketquelle aktualisieren.

Kann ich von einer End-of-Life (EOL)-Version eine Systemaktualisierung durchführen?

Es wird dringend empfohlen, eine EOL-Version auf einem Produktivsystem oder jedem System, das mit dem öffentlichen Internet verbunden ist, zu aktualisieren.

Eine Systemaktualisierung von Fedora Linux 20 oder älter erfolgt auf eigenes Risiko, da DNF nicht das Standard-Paketverwaltungswerkzeug war. Sollten Sie jedoch eine neuere Version als Fedora Linux 20 haben, die das Ende des Lebenszyklus (EOL) erreicht hat, können Sie eine Systemaktualisierung versuchen. Diese Methode wird jedoch nicht unterstützt. Sie können versuchen, über Zwischenversionen zu aktualisieren, bis Sie eine aktuell unterstützte Version erreichen, oder eine Systemaktualisierung auf eine aktuell unterstützte Version in einem einzigen Vorgang durchführen. Auch dies wird nicht unterstützt und erfolgt auf eigenes Risiko.

Kann ich eine einzige Systrmaktualisierung über mehrere Veröffentlichungsnummern hinweg durchführen (zum Beispiel 30 auf 34)?

Systemaktualisierungen auf die nächsthöhere Veröffentlichungsversion (zum Beispiel von 42 auf 43) sowie Systemaktualisierungen, bei denen eine Version übersprungen wird (zum Beispiel von 41 auf 43), werden unterstützt. Es wird jedoch dringend empfohlen, die Systemaktualisierung durchzuführen, bevor Ihre Version das Ende des Lebenszyklus (EOL) erreicht. Dies ist etwa einen Monat nach der Veröffentlichung der N+2-ten Version der Fall (wenn Sie sich aktuell auf Version N befinden). Der Lebenszyklus der Fedora-Veröffentlichungen bietet diese etwa einmonatige Übergangsfrist, damit Benutzer ihre Systeme jährlich, also alle zwei Versionen, aktualisieren können. Unter den Veröffentlichungen finden Sie deren aktuellen Status und den Zeitplan. Ungefähr einen Monat nach Erscheinen der neuen Version erreicht die vorletzte Version das Ende des Lebenszyklus (EOL). Die Aktualisierung wird voraussichtlich auch nach dem Ende des Lebenszyklus (EOL) noch erfolgreich funktionieren; bis wann das nach der Veröffentlichung der neuen Version ist möglich ist, ist jedoch ungewiss.

Systemaktualisierungen über mehr als zwei Veröffentlichungsnummern hinweg werden nicht unterstützt, und Probleme, die bei solchen Systemaktualisierungen auftreten, werden möglicherweise nicht als schwerwiegende Fehler angesehen.

Bei einer Systemaktualisierung über mehr als zwei Veröffentlichungsnummern hinweg müssen Sie möglicherweise den GPG-Schlüssel für die Version importieren, auf die Sie aktualisieren möchten. Dies können Sie mit folgendem Befehl tun:

sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-N-primary

(wobei N die Fedora Linux-Version ist.)

Kann ich mit DNF System Upgrade auf eine Vorabversion (zum Beispiel eine Betaversion) aktualisieren?

Ja, aber wie bei allen anderen Aspekten einer Vorabveröffentlichung kann es auch hier zu vorübergehenden Störungen kommen.