DNF alias Dandified YUM ist ein Package-Manager der nächsten Generation für auf RPM basierende Distributionen. Er wurde erstmals in Fedora 18 eingeführt und hat in der neuesten Version von Fedora 22 das YUM-Dienstprogramm ersetzt.
DNF zielt darauf ab, die Engpässe von YUM zu verbessern, wie Leistung, Speichernutzung, Abhängigkeitsauflösung, Geschwindigkeit und viele andere Faktoren. DNF verwaltet Pakete mithilfe von RPM, libsolv und der hawkey-Bibliothek. Obwohl es nicht standardmäßig in CentOS und RHEL 7 installiert ist, kann man es neben YUM verwenden.
Weitere Informationen zu DNF finden Sie hier:
Die neueste stabile Version von DNF ist 1.0 (zum Zeitpunkt der Veröffentlichung dieses Beitrags), die am 11. Mai 2015 veröffentlicht wurde. Sie (und alle vorherigen Versionen von DNF) sind größtenteils in Python geschrieben und werden unter der GPL v2-Lizenz veröffentlicht.
Installation von DNF
DNF ist nicht im Standard-Repository von RHEL/CentOS 7 verfügbar. Fedora 22 wird jedoch offiziell mit DNF ausgeliefert.
Um DNF auf RHEL/CentOS-Systemen zu installieren, müssen Sie zuerst das epel-release-Repository installieren und aktivieren.
# yum install epel-release OR # yum install epel-release -y
Auch wenn es nicht ethisch ist, mit yum ‘-y‘ zu verwenden, da empfohlen wird zu sehen, was in Ihrem System installiert wird. Wenn Ihnen das jedoch nicht viel ausmacht, können Sie ‘-y’ mit yum verwenden, um alles automatisch ohne Eingreifen des Benutzers zu installieren.
Anschließend installieren Sie das DNF-Paket mithilfe des yum-Befehls aus dem epel-release-Repository.
# yum install dnf
Nach erfolgreicher Installation von dnf ist es an der Zeit, Ihnen 27 praktische Anwendungen von dnf-Befehlen mit Beispielen zu zeigen, die Ihnen helfen werden, Pakete in RPM-basierten Distributionen einfach und effektiv zu verwalten.
1. DNF-Version überprüfen
Überprüfen Sie die Version von DNF, die auf Ihrem System installiert ist.
# dnf --version
2. Aktivierte DNF-Repositories auflisten
Die Option ‘repolist‘ mit dem dnf-Befehl listet alle aktivierten Repositories in Ihrem System auf.
# dnf repolist
3. Alle aktivierten und deaktivierten DNF-Repositories auflisten
Die Option ‘repolist all‘ listet alle aktivierten/deaktivierten Repositories in Ihrem System auf.
# dnf repolist all
4. Alle verfügbaren und installierten Pakete mit DNF auflisten
Der Befehl “dnf list” listet alle verfügbaren Pakete aus allen Repositories und installierten Paketen auf Ihrem Linux-System auf.
# dnf list
5. Alle installierten Pakete mit DNF auflisten
Während der Befehl „dnf list“ alle verfügbaren/installierten Pakete aus allen Repositories anzeigt, haben Sie die Möglichkeit, nur die installierten Pakete mit der Option „list installed“ aufzulisten, wie unten gezeigt.
# dnf list installed
6. Auflisten aller verfügbaren Pakete mit DNF
Ebenso listet die Option „list available“ alle Pakete auf, die aus allen aktivierten Repositories installiert werden können.
# dnf list available
7. Nach einem Paket suchen mit DNF
Falls Sie keine Ahnung haben, welches Paket Sie installieren möchten, können Sie die Option „search“ mit dem dnf-Befehl verwenden, um nach einem Paket zu suchen, das dem Wort oder dem String (z.B. nano) entspricht.
# dnf search nano
8. Herausfinden, welche Datei/Unterpaket bereitgestellt wird?
Die dnf-Option „provides“ findet den Namen des Pakets, das eine bestimmte Datei/Unterpaket bereitstellt. Wenn Sie beispielsweise herausfinden möchten, welches Paket ‚/bin/bash‘ auf Ihrem System bereitstellt:
# dnf provides /bin/bash
9. Details zu einem Paket mit DNF anzeigen
Angenommen, Sie möchten Informationen zu einem Paket wissen, bevor Sie es auf dem System installieren, können Sie den Schalter „info“ verwenden, um detaillierte Informationen zu einem Paket (z.B. nano) zu erhalten, wie unten gezeigt.
# dnf info nano
10. Ein Paket mit DNF installieren
Um ein Paket namens „nano“ zu installieren, führen Sie einfach den unten stehenden Befehl aus. Es werden automatisch alle erforderlichen Abhängigkeiten für das Paket „nano“ aufgelöst und installiert.
# dnf install nano
11. Aktualisieren eines Pakets mit DNF
Du kannst lediglich ein bestimmtes Paket (z.B. systemd) aktualisieren und die restlichen Systemeinstellungen unangetastet lassen.
# dnf update systemd
12. Systemaktualisierungen mit DNF überprüfen
Überprüfen Sie mit folgender Anweisung Aktualisierungen für alle im System installierten Pakete.
# dnf check-update
13. Alle Systempakete mit DNF aktualisieren
Du kannst das gesamte System, einschließlich aller installierten Pakete, mit den folgenden Befehlen aktualisieren.
# dnf update OR # dnf upgrade
14. Ein Paket mit DNF entfernen/löschen
Um ein unerwünschtes Paket (z.B. nano) zu entfernen oder zu löschen, kannst du denswitch „remove“ oder „erase“ mit dem dnf-Befehl verwenden.
# dnf remove nano OR # dnf erase nano
15. Verwaiste Pakete mit DNF entfernen
Diese Pakete wurden installiert, um Abhängigkeiten zu erfüllen, und könnten unbrauchbar sein, wenn sie von anderen Anwendungen nicht verwendet werden. Entfernen Sie diese verwaften Pakete mit dem folgenden Befehl.
# dnf autoremove
16. Pakete im Cache mit DNF entfernen
A lot of time we encounter out-of-date headers and unfinished transactions which results into error while executing dnf. We may clean all the cached packages and headers containing remote package information simply by executing.
# dnf clean all
17. Hilfe für einen bestimmten DNF-Befehl anzeigen
Du kannst die Hilfe für einen bestimmten dnf-Befehl (z.B. clean) einfach durch die folgende Ausführung erhalten.
# dnf help clean
18. Alle DNF-Befehle und Optionen auflisten
Um Hilfe zu allen verfügbaren dnf-Befehlen und Optionen anzuzeigen, tippe einfach folgendes ein.
# dnf help
19. DNF-Historie anzeigen
Du kannst dnf history aufrufen, um die Liste bereits ausgeführter dnf-Befehle zu sehen. Auf diese Weise kannst du erkennen, was installiert oder entfernt wurde, sowie die Zeitstempel dazu.
# dnf history
20. Alle Gruppienpakete auflisten
Der Befehl “dnf grouplist” wird alle verfügbaren oder installierten Pakete drucken, wenn nichts erwähnt wird, wird alle bekannten Gruppen aufgelistet.
# dnf grouplist
21. Installieren einer Grupp Paket mit DNF
Um ein Paket zu installieren, das als Grupp Paket zusammengefasst ist (sagen wir Educational Software), kann man folgendermaßen vorgehen.
# dnf groupinstall 'Educational Software'
22. Aktualisieren eines Grupp Pakets
Lassen Sie uns ein Grupp Paket (sagen wir Educational Software) aktualisieren, indem Sie den untenstehenden Befehl ausführen.
# dnf groupupdate 'Educational Software'
23. Ein Grupp Paket entfernen
Wir können das Grupp Paket (sagen wir Educational Software) wie folgt entfernen.
# dnf groupremove 'Educational Software'
24. Ein Paket von einem bestimmten Repository installieren
DNF ermöglicht es, jedes bestimmte Paket (sagen wir phpmyadmin) von einem Repository (epel) einfach wie folgt zu installieren,
# dnf --enablerepo=epel install phpmyadmin
25. Installierte Pakete auf den Stable Release synchronisieren
Der Befehl “dnf distro-sync” stellt die notwendigen Optionen bereit, um alle installierten Pakete auf die neueste stabile Version zu synchronisieren, die von jedem aktivierten Repository verfügbar ist. Wenn kein Paket ausgewählt ist, werden alle installierten Pakete synchronisiert.
# dnf distro-sync
26. Ein Paket neu installieren
Der Befehl “dnf reinstall nano” wird ein bereits installiertes Paket (sagen wir nano) neu installieren.
# dnf reinstall nano
27. Ein Paket rücknehmen
Die Option “downgrade” bringt das benannte Paket (sagen wir acpid) auf eine niedrigere Version, wenn möglich.
# dnf downgrade acpid
Beispielhafte Ausgabe
Using metadata from Wed May 20 12:44:59 2015 No match for available package: acpid-2.0.19-5.el7.x86_64 Error: Nothing to do.
Meine Beobachtung: DNF hat das Paket nicht abgestuft, wie es sollte. Es wurde auch als Fehler gemeldet.
Schlussfolgerung
DNF ist der obere Zustand des modernen Paketmanagers YUM. Es neigt dazu, viele Prozesse automatisch durchzuführen, was von vielen erfahrenen Linux-Systemadministratoren nicht gelobt wird, wie ich glaube. Als Beispiel:
--skip-broken
wird von DNF nicht erkannt und es gibt keine Alternative.- Es gibt kein ‚resolvedep‘-Befehl, jedoch können Sie ‚dnf provides‘ ausführen.
- Es gibt keinen ‚deplist‘-Befehl, um Paketabhängigkeiten zu finden.
- Wenn Sie ein Repo ausschließen, gilt der Ausschluss für alle Operationen, im Gegensatz zu yum, das diese Repos nur zum Zeitpunkt der Installation und Aktualisierung ausschließt, usw.
Viele Linux-Benutzer sind nicht zufrieden mit der Art und Weise, wie sich das Linux-Ökosystem entwickelt. Zuerst hat Systemd das Init-System V entfernt und jetzt wird DNF YUM bald in Fedora 22 und später in RHEL und CentOS ersetzen.
Was denken Sie? Schätzen Distributionen und das gesamte Linux-Ökosystem ihre Benutzer nicht und handeln gegen ihren Willen? Es wird auch oft in der IT-Branche gesagt – „Warum reparieren, wenn es nicht kaputt ist?“, und weder das Init-System V noch YUM sind kaputt.
Das ist alles für jetzt. Lassen Sie mich bitte Ihre wertvollen Gedanken in den Kommentaren unten wissen. Liken und teilen Sie uns und helfen Sie uns, bekannt zu werden.
Source:
https://www.tecmint.com/dnf-commands-for-fedora-rpm-package-management/