apt zu dnf: Befehle für Rocky und Fedora
Die wichtigsten dnf-Gegenstücke zu apt für Rocky Linux, AlmaLinux und Fedora, inklusive Repositorys, Paketgruppen, Rollback und unbeaufsichtigter Updates.
Die kurze Antwort
Der Wechsel von apt zu dnf ist größtenteils eine Änderung der Begriffe. apt install nginx wird zu dnf install nginx. apt remove nginx wird zu dnf remove nginx. Für apt update gibt es kein direktes Gegenstück, weil dnf seine Repository-Metadaten selbst aktualisiert, sobald die zwischengespeicherte Kopie veraltet ist. Der einfache Teil der Übersetzung passt auf einen Bildschirm. Der nützliche Teil umfasst die vier Vorgänge, die sich überhaupt nicht direkt abbilden lassen: ein Repository hinzufügen, eine Transaktion rückgängig machen, eine Paketgruppe installieren und unbeaufsichtigte Updates ausführen.
Alle folgenden Befehle sind für die Ausführung auf Ihrem eigenen Server geschrieben. Lesen Sie die von dnf ausgegebene Transaktionsübersicht, bevor Sie y beantworten, insbesondere bei Deinstallationen.
Welche Distributionen verwenden dnf und welche apt
dnf ist der Paketmanager von Fedora, Red Hat Enterprise Linux (RHEL) und den RHEL-Neuimplementierungen Rocky Linux, AlmaLinux und CentOS Stream. apt ist der Paketmanager von Debian und allen darauf basierenden Distributionen, was bei einem VPS fast immer Ubuntu bedeutet. Eine dritte Antwort gibt es nicht. Wenn die Image-Liste Ihres Providers Rocky Linux oder AlmaLinux anbietet, verwenden Sie dnf. Wenn sie Ubuntu anbietet, verwenden Sie apt.
Das Paketformat richtet sich nach dem Tool. dnf installiert .rpm-Dateien, und seine Datenbank ist rpm. apt installiert .deb-Dateien, und seine Datenbank ist dpkg. Deshalb haben viele Installationsseiten von Anbietern je einen Tab für jede Familie. Deshalb ist ein .deb, das von der Release-Seite eines Projekts heruntergeladen wurde, unter Rocky Linux nutzlos.
Unabhängig davon, für welche Familie Sie sich entscheiden, ist die erste Anmeldung gleich aufgebaut. Die ersten zehn Minuten auf einem neuen VPS gelten für beide. Nur der Installationsbefehl ändert sich.
Jeder apt-Befehl und sein dnf-Gegenstück
Installieren, entfernen, suchen und Informationen anzeigen. Auf beiden Seiten werden dafür fast dieselben Begriffe verwendet.
# apt
sudo apt install nginx
sudo apt remove nginx
apt search nginx
apt show nginx
# dnf
sudo dnf install nginx
sudo dnf remove nginx
dnf search nginx
dnf info nginxapt show ist dnf info. Das ist das einzige umbenannte Verb in dieser Gruppe. Ein Verhalten unterscheidet sich jedoch und führt häufig zu unerwarteten Ergebnissen. dnf remove entfernt außerdem Abhängigkeiten, die von keinem anderen Paket benötigt werden, während apt remove sie für ein späteres apt autoremove installiert lässt. Daher kann das Entfernen eines kleinen Dienstprogramms unter Rocky Linux vorschlagen, ein Dutzend Bibliotheken ebenfalls zu entfernen. Lesen Sie die Liste, bevor Sie die Aktion bestätigen.
Metadaten aktualisieren, ausstehende Aktualisierungen prüfen und ein Upgrade durchführen.
# apt
sudo apt update
apt list --upgradable
sudo apt install --only-upgrade nginx
sudo apt upgrade
# dnf
sudo dnf makecache
dnf check-update
sudo dnf upgrade nginx
sudo dnf upgradeapt update ist auf der apt-Seite erforderlich, weil apt die auf dem Datenträger vorhandenen Metadaten verwendet und problemlos eine Version installiert, die das Archiv bereits vor Monaten verlassen hat. dnf prüft vor jeder Transaktion das Alter seines Caches und lädt frische Metadaten selbstständig herunter. sudo dnf makecache dient daher nur dazu, diesen Download sofort und nicht erst beim nächsten Installieren zu erzwingen.
apt teilt das vollständige Systemupgrade in zwei Befehle auf, dnf nicht. apt upgrade verweigert das Entfernen eines installierten Pakets und bricht daher ab, sobald eine Aktualisierung dessen Entfernung erfordert. apt full-upgrade darf Pakete entfernen. Bei dnf gibt es diese Einschränkung nicht. Daher entspricht dnf upgrade apt full-upgrade und nicht apt upgrade. dnf update ist ein älterer Alias für denselben Befehl und funktioniert weiterhin.
Ein Detail ist wichtig, wenn Sie dies in Skripten verwenden: dnf check-update beendet sich mit Status 100, wenn Aktualisierungen ausstehen, und mit 0, wenn keine ausstehen. apt list --upgradable beendet sich in beiden Fällen mit 0. Skripte müssen daher seine Ausgabe auswerten.
Auflisten, was installiert ist, und ermitteln, welches Paket eine Datei bereitstellt.
# apt
dpkg -l
dpkg -S /usr/sbin/nginx
dpkg -L nginx
apt-file search /usr/sbin/nginx
# dnf
dnf list --installed
rpm -qf /usr/sbin/nginx
rpm -ql nginx
dnf provides /usr/sbin/nginxDie letzte Zeile jedes Blocks beantwortet eine andere Frage als die darüberstehenden Zeilen. dpkg -S und rpm -qf suchen nur in bereits installierten Paketen. Sie beantworten daher die Frage: „Welches Paket hat diese Datei installiert?“ apt-file search und dnf provides durchsuchen die Paketquellen. Sie beantworten daher die Frage: „Welches Paket müsste ich installieren, um diese Datei zu erhalten?“ apt-file ist unter Ubuntu ein separates Paket und benötigt sudo apt-file update vor dem ersten Aufruf. dnf provides benötigt nichts Zusätzliches. Der erste Aufruf kann jedoch langsam sein, weil dnf die Dateilisten der Paketquellen herunterlädt, um die Anfrage zu beantworten.
Um die Dateien eines noch nicht installierten Pakets aufzulisten, verwenden Sie dnf repoquery -l nginx. Auf der apt-Seite lautet das Gegenstück apt-file list nginx.
Automatisch nicht mehr benötigte Pakete entfernen, den Cache bereinigen und eine Version festhalten.
# apt
sudo apt autoremove
sudo apt clean
sudo apt-mark hold nginx
apt-mark showhold
sudo apt-mark unhold nginx
# dnf
sudo dnf autoremove
sudo dnf clean all
sudo dnf versionlock add nginx
dnf versionlock list
sudo dnf versionlock delete nginxversionlock ist unter Rocky Linux und AlmaLinux standardmäßig nicht installiert. Daher schlägt der erste dieser Befehle auf einem frisch installierten System mit No such command: versionlock fehl. Installieren Sie es zuerst mit sudo dnf install python3-dnf-plugin-versionlock. Für apt-mark hold benötigt apt nichts Zusätzliches, weil ein Hold ein dpkg-Status und kein Plugin ist.
Wo die Zuordnung nicht mehr greift: Ein Repository hinzufügen
Das ist der Teil, bei dem Ubuntu-Administratoren nach einem nicht vorhandenen Befehl suchen. Für dnf gibt es kein add-apt-repository, und es gibt keine Personal Package Archives (PPAs). Eine PPA ist ein von Launchpad bereitgestellter Dienst, und Launchpad gehört zur Ubuntu-Infrastruktur. In der RPM-Welt gibt es dafür keinen entsprechenden Dienst.
dnf verwendet stattdessen eine einfache Textdatei pro Repository in /etc/yum.repos.d/. Die Dateinamen enden mit .repo.
[docker-ce-stable]
name=Docker CE Stable
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg$releasever und $basearch sind dnf-Variablen. dnf setzt zur Laufzeit die Hauptversionsnummer und die CPU-Architektur ein. Deshalb funktioniert dieselbe Datei mit Version 9 und Version 10 sowie mit x86_64 und aarch64.
Die meisten Anbieter veröffentlichen diese Datei und weisen Sie an, sie abzurufen. Die offiziellen Anweisungen von Docker für RHEL und dessen Rebuilds bestehen aus zwei Befehlen:
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repoDie erste Zeile ist erforderlich, weil config-manager ein Plugin und nicht Bestandteil von dnf selbst ist. Wenn Sie sie überspringen, schlägt die zweite Zeile mit No such command: config-manager fehl. Sie können dieselbe .repo-Datei auch manuell mit curl nach /etc/yum.repos.d/ herunterladen. Das Ergebnis ist identisch. Docker auf einem VPS installieren beschreibt die entsprechende Vorgehensweise für Debian. Dort schreibt der entsprechende Schritt eine Paketquellenliste und einen Signaturschlüssel in zwei verschiedene Verzeichnisse.
Der Layoutunterschied bestimmt, wo Sie suchen müssen, wenn ein Repository Probleme verursacht. apt speichert die Definitionen in /etc/apt/sources.list und /etc/apt/sources.list.d/. Die Signaturschlüssel liegen getrennt unter /etc/apt/keyrings/. dnf speichert alles in /etc/yum.repos.d/. Der Schlüssel ist eine URL innerhalb der Datei .repo. Dadurch gibt es eine Datei zum Lesen und eine Datei zum Löschen. Neuere apt-Versionen verwenden mit dem deb822-Format zunehmend dieselbe Struktur: eine .sources-Datei pro Repository. Wenn bei Ihnen bereits der Fehler durch doppelte deb822-Paketquellen unter Ubuntu aufgetreten ist, kennen Sie die apt-Seite dieses Problems bereits.
EPEL ist das Archiv, von dem die meisten Anleitungen ausgehen
Extra Packages for Enterprise Linux (EPEL) ist ein Fedora-Projekt, das Fedora-Pakete für RHEL und dessen Rebuilds erstellt. Es kommt einem universellen PPA am nächsten, und sehr viele Anleitungen setzen voraus, dass es bereits aktiviert ist. Wenn dnf install für ein Paket No match for argument, das Sie auf der Website des Projekts selbst sehen können, sollten Sie als Erstes EPEL prüfen.
Unter Rocky Linux und AlmaLinux:
sudo dnf config-manager --set-enabled crb
sudo dnf install epel-release
sudo dnf makecacheCRB steht für CodeReady Builder. Es ist ein Repository mit Bibliotheken, das mit der Distribution ausgeliefert, aber standardmäßig nicht aktiviert wird. Die meisten EPEL-Pakete hängen von einem Paket daraus ab. Das Aktivieren von EPEL ohne CRB schlägt daher nicht sofort fehl. Der Fehler tritt später bei der Installation auf, wenn Abhängigkeiten zu einem Paket nicht aufgelöst werden können, von dem Sie noch nie gehört haben. Aktivieren Sie CRB zuerst. Dann verschwindet diese Fehlerklasse.
Auf RHEL selbst wird CRB über Ihr Abonnement und nicht über config-manager bereitgestellt. Befolgen Sie daher für diesen Schritt die EPEL-Anleitung von Red Hat. Fedora benötigt nichts davon, weil das Haupt-Repository bereits enthält, was EPEL zurückportiert. Die EPEL-Richtlinie verbietet es, ein von RHEL ausgeliefertes Paket zu ersetzen. Das Hinzufügen des Repositorys ändert daher nichts an Paketen, die bereits auf Ihrem Server installiert sind.
dnf history undo, was apt nicht kann
dnf zeichnet jede Transaktion auf und kann das Gegenstück zu einer Transaktion erstellen.
sudo dnf history
sudo dnf history info 42
sudo dnf history undo 42dnf history gibt eine nummerierte Liste der Transaktionen aus, einschließlich der Befehlszeile, mit der jede Transaktion gestartet wurde. undo erstellt die entgegengesetzte Transaktion: Pakete, die von dieser Transaktion installiert wurden, werden entfernt. Aktualisierte Pakete werden auf die zuvor verwendete Version zurückgesetzt. Diese Funktion fehlt apt-Benutzern nach dem Wechsel am meisten.
Die Funktion hat klare Grenzen. Diese sollten Sie kennen, bevor Sie sich darauf verlassen. undo kann eine Paketversion nur dann erneut installieren, wenn sie noch in einem aktivierten Repository vorhanden ist. Wurde der alte Build aus dem Mirror entfernt, schlägt das Zurücksetzen mit einem Fehler wegen eines nicht gefundenen Pakets fehl. Das Rollback endet außerdem bei der Paketdatenbank. Eine Konfigurationsdatei, die durch das Upgrade überschrieben wurde, bleibt überschrieben. Ein Datenbankschema, das ein Dienst beim ersten Start migriert hat, bleibt migriert. dnf stellt die Dateien wieder her. Ihre Daten stellt es nicht wieder her.
apt hat kein entsprechendes Verfahren. /var/log/apt/history.log zeichnet genau auf, was geschehen ist, einschließlich der Befehlszeile. Das Lesen eines Logs macht die Änderungen jedoch nicht rückgängig. Die Wiederherstellung auf der apt-Seite erfolgt manuell: Führen Sie apt list -a nginx aus, um zu prüfen, welche Versionen das Archiv noch bereithält. Verwenden Sie anschließend sudo apt install nginx=<exact version string>, um eine Version festzulegen. Fügen Sie außerdem sudo apt-mark hold nginx hinzu, damit das nächste Upgrade Ihre Korrektur nicht wieder rückgängig macht.
Paketgruppen haben kein apt-Äquivalent
dnf kann eine benannte Gruppe von Paketen mit einem einzigen Befehl installieren.
dnf group list
dnf group info "Development Tools"
sudo dnf group install "Development Tools"In älteren Anleitungen steht dnf groupinstall "Development Tools". Dieser Alias funktioniert mit dnf 4 und ist in dnf 5 nicht mehr vorhanden. Daher ist das aus zwei Wörtern bestehende dnf group install die einzige Schreibweise, die überall funktioniert. Verwenden Sie diese Schreibweise und machen Sie sich keine weiteren Gedanken darüber.
apt kennt keine Gruppen. Das nächstgelegene Konzept in Debian ist ein Metapaket. Dabei handelt es sich um ein ansonsten leeres Paket, dessen einziger Inhalt eine Liste von Abhängigkeiten ist, beispielsweise build-essential. Der praktische Unterschied zeigt sich beim Entfernen: Wenn Sie ein Metapaket entfernen, bleiben seine Abhängigkeiten installiert, bis Sie apt autoremove ausführen. dnf group remove entfernt die Pakete der Gruppe dagegen in derselben Transaktion.
Unattended-upgrades und dnf-automatic
Beide Paketfamilien bieten eine Möglichkeit, Updates zu installieren, ohne dass jemand angemeldet ist. Außer diesem Zweck haben die Werkzeuge nichts gemeinsam.
Unter Ubuntu und Debian heißt das Paket unattended-upgrades. Es wird in /etc/apt/apt.conf.d/50unattended-upgrades konfiguriert. Dort legen Sie die Quellen fest, aus denen es Pakete beziehen darf. Unattended-upgrades unter Ubuntu einrichten behandelt diese Konfigurationsdatei und die damit verbundene Frage nach einem Reboot.
Unter Rocky Linux, AlmaLinux und Fedora heißt das Paket dnf-automatic. Das Verhalten wird durch den aktivierten systemd-Timer bestimmt.
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic-install.timer
systemctl list-timers 'dnf-automatic*'dnf-automatic-install.timer lädt Updates herunter und installiert sie. dnf-automatic-download.timer lädt sie nur herunter und beendet sich dann. Die Installation führen Sie anschließend selbst durch. dnf-automatic-notifyonly.timer erstellt nur einen Bericht. Jede dieser Units überschreibt die Einstellung apply_updates in /etc/dnf/automatic.conf. Daher ist der ausgewählte Timer wichtiger als der Inhalt der Konfigurationsdatei.
Um das Tool auf Security-Fixes zu beschränken, setzen Sie upgrade_type = security in /etc/dnf/automatic.conf. Dieser Filter funktioniert nur, wenn Ihre Paketquellen Security-Errata veröffentlichen. Prüfen Sie das zuerst mit dnf updateinfo list security. Ein leeres Ergebnis auf einem System mit ausstehenden Updates bedeutet, dass die Metadaten nicht vorhanden sind. security würde dann überhaupt nichts installieren.
Unter Fedora hat dnf 5 die Unit umbenannt. Sie heißt dnf5-automatic.timer und liest dieselbe /etc/dnf/automatic.conf.
Ist yum noch ein echter Befehl?
Ja. Der Befehl führt jedoch allein nichts aus. Auf Rocky Linux, AlmaLinux und CentOS Stream ist /usr/bin/yum ein symbolischer Link auf dnf. Prüfen Sie Ihre Installation:
ls -l /usr/bin/yum
dnf --versionDie alte yum-Syntax erscheint weiterhin in Tutorials, weil sie größtenteils direkt funktioniert. yum install, yum remove und yum update funktionieren alle. Eine Gewohnheit sollten Sie jedoch aufgeben: yum-config-manager ist auf Systemen mit dnf 4 weiterhin als eigene Binärdatei vorhanden. dnf config-manager ist jedoch die Schreibweise in der aktuellen Dokumentation und funktioniert auch dann weiter, wenn das System auf dnf 5 umgestellt wird.
dnf 4 und dnf 5: Prüfen Sie den Befehl, bevor Sie ihn kopieren
dnf 5 ist eine Neuentwicklung und hat die Schreibweise mehrerer Befehle geändert. Fedora 41 und höher liefern es als dnf aus. Bei den Enterprise-Rebuilds erfolgte die Umstellung langsamer. Leiten Sie die verwendete Version daher nicht aus dem Distributionsnamen ab. Führen Sie auf Ihrem eigenen Server dnf --version aus und lesen Sie die erste Zeile. Diese Versionsnummer bestimmt, welche der folgenden Syntax Sie benötigen.
Am deutlichsten zeigt sich der Unterschied bei Docker, das für beide Versionen jeweils einen anderen Repository-Befehl veröffentlicht. Auf RHEL und dessen Rebuilds mit dnf 4:
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repoAuf Fedora mit dnf 5:
sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repoGleicher Anbieter, gleiche Aufgabe, andere Syntax. dnf 5 hat config-manager in ein werkzeug mit subcommand-basierter Bedienung umgewandelt. Deshalb wird das alte Flag --add-repo nicht akzeptiert. Statt eines Repositorys erhalten Sie dann einen Usage-Fehler. Der andere Befehl, auf den Sie stoßen werden, aktiviert ein Repository: dnf config-manager --set-enabled crb bei dnf 4 wird zu dnf config-manager setopt crb.enabled=1 bei dnf 5.
Die tatsächlich wichtige Entscheidung
Eine Serverdistribution allein anhand des Paketmanagers auszuwählen, ist das falsche Kriterium. dnf und apt erledigen dieselbe Aufgabe, und die jeweilige Terminologie lässt sich an einem Nachmittag lernen. Was Ihr Jahr bestimmt, ist das Release-Modell hinter dem Repository. Fedora entwickelt sich schnell weiter, und für ein bestimmtes Release werden ungefähr dreizehn Monate nach seiner Veröffentlichung keine Updates mehr bereitgestellt. Das ist für eine Workstation in Ordnung, für einen Server, den Sie nicht neu aufsetzen möchten, jedoch problematisch. Rocky Linux und AlmaLinux folgen RHEL. Dadurch erhalten Sie einen Supportzeitraum von zehn Jahren und Paketversionen, die bewusst unverändert bleiben. Ubuntu bietet beide Varianten. Der Unterschied zwischen Ubuntu LTS und Interim-Releases auf einem Server ist dieselbe Entscheidung innerhalb der apt-Welt.
Stand August 2026 sind all diese Distributionen übliche VPS-Images. Wählen Sie den gewünschten Supportzeitraum aus und lernen Sie anschließend die zehn oben genannten Befehle.
FAQ
Was ist das dnf-Äquivalent zu apt update?
Sie müssen keinen Befehl ausführen. dnf prüft vor jeder Transaktion, wie alt seine zwischengespeicherten Metadaten sind, und lädt eine aktuelle Kopie herunter, sobald sie abgelaufen ist. Daher sieht dnf install auf einem Server, den Sie seit einem Monat nicht angefasst haben, weiterhin aktuelle Pakete. sudo dnf makecache existiert und erzwingt diesen Download, wird aber hauptsächlich verwendet, um die Verzögerung auf einen von Ihnen gewählten Zeitpunkt zu verlagern und nicht in die nächste Installation. Der Befehl für die Frage „Was steht an?“ ist dnf check-update. Dieser entspricht apt list --upgradable und beendet sich mit dem Status 100, wenn Aktualisierungen verfügbar sind.
Gibt es ein PPA-Äquivalent auf Rocky Linux oder Fedora?
Nein. Personal Package Archives sind ein Dienst von Launchpad, und Launchpad gehört zur Ubuntu-Infrastruktur. Daher gibt es für add-apt-repository nichts zu übersetzen. Das RPM-Äquivalent ist eine .repo-Datei in /etc/yum.repos.d/. Sie enthält einen Namen, eine baseurl und eine gpgkey. Anbieter veröffentlichen diese Datei für Sie. Mit sudo dnf config-manager --add-repo <url> unter dnf 4 oder sudo dnf config-manager addrepo --from-repofile <url> unter dnf 5 laden Sie sie an die richtige Stelle herunter. Für zusätzliche Software aus allgemeinen Quellen lautet die Antwort meist EPEL. Sie aktivieren EPEL mit sudo dnf config-manager --set-enabled crb und anschließend sudo dnf install epel-release.
Kann ich ein dnf-Upgrade rückgängig machen, durch das mein Server beschädigt wurde?
Ja, innerhalb bestimmter Grenzen. Führen Sie sudo dnf history aus, um die Transaktionsnummer zu ermitteln, sudo dnf history info <id>, um genau zu sehen, was geändert wurde, und anschließend sudo dnf history undo <id>. Das Rückgängigmachen schlägt fehl, wenn die ältere Paketversion in keinem aktivierten Repository mehr vorhanden ist, weil dnf nichts zur erneuten Installation hat. Außerdem werden nur Paketänderungen rückgängig gemacht. Eine Konfigurationsdatei, die durch das Upgrade überschrieben wurde, oder eine Datenbank, die ein Dienst beim ersten Start migriert hat, bleibt unverändert. apt verfügt überhaupt nicht über einen entsprechenden Befehl, sondern nur über den Eintrag in /var/log/apt/history.log.
Funktioniert yum unter Rocky Linux und AlmaLinux noch?
Es funktioniert, weil /usr/bin/yum ein symbolischer Link auf dnf ist. Prüfen Sie dies auf Ihrem eigenen System mit ls -l /usr/bin/yum. Die Eingabe von yum install httpd führt dnf aus. Daher funktionieren ältere Anleitungen meist weiterhin. Verwenden Sie in neuen Skripten und in neuer Dokumentation dnf, da der Name yum nur aus Kompatibilitätsgründen vorhanden ist. Bevorzugen Sie außerdem dnf config-manager gegenüber der älteren yum-config-manager-Binärdatei.
Warum möchte dnf remove so viele Pakete löschen?
Weil dnf Abhängigkeiten, die kein anderes Paket benötigt, als Teil derselben Transaktion entfernt. apt remove lässt sie dagegen installiert, bis Sie apt autoremove separat ausführen. Daher kann eine kleine Deinstallation unter Ubuntu unter Rocky Linux eine lange Liste ausgeben. Die Liste ist in der Regel korrekt. Lesen Sie sie jedoch vor der Bestätigung. Wenn Sie ein darin aufgeführtes Paket behalten möchten, installieren Sie es zuerst explizit. Dadurch erfasst dnf es als eigenständig gewünschtes Paket.