27 'DNF' (Fork of Yum) Befehle für die RPM-Paketverwaltung unter Linux
DNF aka Dandified YUM ist ein Paketmanager der nächsten Generation für RPM-basierte Distribution. Es wurde erstmals in Fedora 18 eingeführt und hat das YUM-Dienstprogramm in der jüngsten Version von Fedora 22 ersetzt.
DNF zielt darauf ab, die Engpässe von YUM zu verbessern, nämlich Leistung, Speicherauslastung, Abhängigkeitsauflösung, Geschwindigkeit und viele andere Faktoren. DNF führt die Paketverwaltung mit RPM, libsolv und hawkey library durch. Obwohl es nicht in CentOS und RHEL 7 installiert ist, können Sie yum, dnf und es neben dem yum verwenden.
Vielleicht möchten Sie hier mehr über DNF lesen:
- Gründe für den Ersatz von Yum durch DNF
Die letzte stabile Version von DNF ist 1.0 (zum Zeitpunkt des Schreibens des Beitrags), die am 11. Mai 2015 veröffentlicht wurde. Es (und alle vorherigen Versionen von DNF) ist größtenteils in Python geschrieben und wird unter der GPL v2-Lizenz veröffentlicht.
Installation von DNF
DNF ist im Standard-Repository von RHEL/CentOS 7 nicht verfügbar. Fedora 22 wird jedoch mit DNF offiziell implementiert 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
Es ist jedoch nicht ethisch vertretbar, '-y' mit yum zu verwenden, da es empfohlen wird, zu sehen, was in Ihrem System installiert wird. Wenn Ihnen dies jedoch nicht viel ausmacht, können Sie '-y' mit yum verwenden, um alles automatisch zu installieren, ohne dass der Benutzer eingreifen muss.
Installieren Sie als Nächstes das DNF-Paket mit dem Befehl yum aus dem Repository epel-release.
# yum install dnf
Nachdem dnf erfolgreich installiert wurde, ist es an der Zeit, Ihnen 27 praktische Anwendungen von dnf-Befehlen mit Beispielen zu zeigen, die Ihnen helfen, Pakete in RPM-basierter Distribution einfach und effektiv zu verwalten.
1. Überprüfen Sie die DNF-Version
Überprüfen Sie die Version von DNF, die auf Ihrem System installiert ist.
# dnf --version
2. Auflisten aktivierter DNF-Repositories
Die Option 'repolist' mit dem Befehl dnf zeigt alle aktivierten Repositories unter Ihrem System an.
# dnf repolist
3. Listen Sie alle aktivierten und deaktivierten DNF-Repositories auf.
Die Option 'repolist all' druckt alle aktivierten/deaktivierten Repositories unter Ihrem System.
# dnf repolist all
4. Listen Sie alle verfügbaren und installierten Pakete mit DNF auf
Der Befehl "dnf list" listet alle verfügbaren Pakete aus allen Repositories und installierten Paketen auf Ihrem Linux-System auf.
# dnf list
5. Listen Sie alle installierten Pakete mit DNF auf
Während der Befehl "dnf list" alle verfügbaren/installierten Pakete aus allen Repositories anzeigt. Sie haben jedoch die Möglichkeit, nur die installierten Pakete aufzulisten, indem Sie die Option "list installed" verwenden, wie unten gezeigt.
# dnf list installed
6. Listen Sie alle verfügbaren Pakete mit DNF auf
In ähnlicher Weise listet die Option "list available" alle Pakete auf, die zur Installation aus allen aktivierten Projektarchiven verfügbar sind.
# dnf list available
7. Suchen Sie mit DNF nach einem Paket
Falls Sie keine Ahnung von dem Paket haben, das Sie installieren möchten, können Sie in einer solchen Situation die Option 'search' mit dem Befehl dnf verwenden, um nach dem Paket zu suchen, das dem Wort oder der Zeichenfolge entspricht (z. B. nano).
# dnf search nano
8. Sehen Sie, was eine Datei/ein Unterpaket bereitstellt?
Die Option dnf "provides" sucht den Namen des Pakets, das eine bestimmte Datei/ein bestimmtes Unterpaket bereitstellt. Wenn Sie zum Beispiel herausfinden möchten, was '/bin/bash' auf Ihrem System bereitstellt?
# dnf provides /bin/bash
9. Abrufen von Details zu einem Paket mithilfe von DNF
Nehmen wir an, Sie möchten die Informationen eines Pakets wissen, bevor Sie es auf dem System installieren, Sie können den Schalter "info" verwenden, um detaillierte Informationen über ein Paket (z. B. nano) wie unten beschrieben zu erhalten.
# dnf info nano
10. Installieren Sie ein Paket mit DNF
Um ein Paket namens nano zu installieren, führen Sie einfach den folgenden Befehl aus, es wird automatisch aufgelöst und alle erforderlichen Abhängigkeiten für das Paket nano installiert.
# dnf install nano
11. Aktualisieren eines Pakets mit DNF
Sie dürfen nur ein bestimmtes Paket aktualisieren (z.B. systemd) und alles auf dem System unberührt lassen.
# dnf update systemd
12. Suchen Sie mit DNF nach Systemupdates.
Überprüfen Sie Updates für alle Systempakete, die einfach auf dem System installiert sind.
# dnf check-update
13. Aktualisieren Sie alle Systempakete mit DNF
Sie können das gesamte System einschließlich aller installierten Pakete mit den folgenden Befehlen aktualisieren.
# dnf update
OR
dnf upgrade
14. Entfernen/Löschen eines Pakets mit DNF
Um ein unerwünschtes Paket (z.B. nano) zu entfernen oder zu löschen, können Sie den Schalter "remove" oder "erase" mit dem Befehl dnf verwenden, um es zu entfernen.
# dnf remove nano
OR
dnf erase nano
15. Entfernen Sie verwaiste Pakete mit DNF
Pakete, die installiert wurden, um die Abhängigkeit zu erfüllen, können nutzlos sein, wenn sie nicht von anderen Anwendungen verwendet werden. Um diese verwaisten Pakete zu entfernen, führen Sie den folgenden Befehl aus.
# dnf autoremove
16. Entfernen Sie zwischengespeicherte Pakete mit DNF
Oft stoßen wir auf veraltete Header und nicht abgeschlossene Transaktionen, was zu Fehlern beim Ausführen von dnf führt. Wir können alle zwischengespeicherten Pakete und Header, die entfernte Paketinformationen enthalten, einfach durch Ausführen bereinigen.
# dnf clean all
17. Holen Sie sich Hilfe zu einem bestimmten DNF-Befehl
Sie können Hilfe von einem bestimmten dnf-Befehl (z. B. clean) erhalten, indem Sie einfach den folgenden Befehl ausführen.
# dnf help clean
18. Listen Sie alle DNF-Befehle und -Optionen auf
Um die Hilfe zu allen verfügbaren dnf-Befehlen und -Optionen aufzulisten, geben Sie einfach ein.
# dnf help
19. Verlauf von DNF anzeigen
Sie können dnf history aufrufen, um die Liste der bereits ausgeführten dnf-Befehle anzuzeigen. Auf diese Weise können Sie mit dem Zeitstempel erkennen, was installiert/entfernt wurde.
# dnf history
20. Listen Sie alle Gruppenpakete auf
Der Befehl "dnf grouplist" gibt alle verfügbaren oder installierten Pakete aus, wenn nichts erwähnt wird, werden alle bekannten Gruppen aufgelistet.
# dnf grouplist
21. Installieren eines Gruppenpakets mit DNF
Um eine Gruppe von Paketen zu installieren, die als Gruppenpaket gebündelt sind (z. B. Lernsoftware), einfach als.
# dnf groupinstall 'Educational Software'
22. Aktualisieren eines Gruppenpakets
Lassen Sie uns ein Gruppenpaket (z. B. Lernsoftware) aktualisieren, indem wir den folgenden Befehl ausführen.
# dnf groupupdate 'Educational Software'
23. Entfernen eines Gruppenpakets
Wir können die Gruppe Paket (z. B. Lernsoftware) als entfernen.
# dnf groupremove 'Educational Software'
24. Installieren Sie ein Paket aus einem bestimmten Repository
DNF ermöglicht es, ein beliebiges spezifisches Paket (z. B. phpmyadmin) aus einem Repo (epel) zu installieren, so einfach wie:
# dnf --enablerepo=epel install phpmyadmin
25. Synchronisieren Sie installierte Pakete mit der stabilen Version
Der Befehl "dnf distro-sync" bietet die notwendigen Optionen, um alle installierten Pakete mit der neuesten stabilen Version zu synchronisieren, die von einem aktivierten Repository verfügbar ist. Wenn kein Paket ausgewählt ist, werden alle installierten Pakete synchronisiert.
# dnf distro-sync
26. Installieren Sie ein Paket neu
Der Befehl "dnf reinstall nano" installiert ein bereits installiertes Paket (z. B. nano) neu.
# dnf reinstall nano
27. Downgrade eines Pakets
Die Option "downgrade" stuft das benannte Paket (z.B. acpid) auf eine niedrigere Version herab, wenn möglich.
# dnf downgrade acpid
Beispiel-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 stuft das Paket nicht herab, wie es sollte. Es wurde auch als Fehler gemeldet.
Schlussfolgerung
DNF ist der obere Zustand des Endes des Package Manager YUM. Es neigt dazu, eine Menge Verarbeitung automatisch durchzuführen, was von vielen erfahrenen Linux-Systemadministratoren nicht gelobt wird, wie ich glaube. Als Beispiel:
--skip-brokenwird von DNF nicht erkannt und es gibt keine Alternative.- Es gibt nichts Besseres als den Befehl 'resolvedep', wie auch immer Sie dnf provides ausführen können.
- Es gibt keinen 'deplist'-Befehl, um die Paketabhängigkeit zu finden.
- Sie schließen ein Repository aus, was bedeutet, dass der Ausschluss für alle Vorgänge gilt, im Gegensatz zu yum, das diese Repositorys nur zum Zeitpunkt der Installation und Aktualisierung usw. ausschließt.
Mehrere Linux-Benutzer sind nicht zufrieden mit der Art und Weise, wie sich das Linux-Ökosystem bewegt. Zuerst hat Systemd das init-System v entfernt und jetzt wird DNF YUM früher in Fedora 22 und später in RHEL und CentOS ersetzen.
Was denkst du? sind Distributionen und das gesamte Linux-Ökosystem schätzt seine Benutzer nicht und bewegt sich gegen ihren Willen. Auch wird in der IT-Branche oft gesagt – "Warum reparieren, wenn nicht kaputt?", und weder init System V ist kaputt noch YUM.
Das war's fürs Erste. Bitte teilen Sie mir Ihre wertvollen Gedanken in den Kommentaren unten mit. Like und teile uns und hilf uns, uns zu verbreiten.


























