Dieses Tutorial erklärt alle grundlegenden Befehle für diejenigen, die wissen möchten, wie man den DNF-Paketmanager verwendet. Wie Sie vielleicht bereits wissen, ist DNF die nächste Generation von YUM und seit Fedora 22 der Standard-Paketmanager. Es soll der Ersatz für YUM in RPM-basierten Systemen wie RHEL, CentOS sein. Im Vergleich zu YUM hat DNF einige bedeutende Vorteile, wie z. B. Unterstützung für mehrere Repositories, Paketgruppenunterstützung, schnellere Auflösungsgeschwindigkeit von Abhängigkeiten und verbraucht weniger Speicher, läuft sowohl in Python 2 als auch in Python 3, solide API-Dokumentation, Kompatibilität mit YUM und vielem mehr.
Empfohlene Lektüre:
- Erste Schritte mit Pacman
DNF-Befehlsbeispiele für Anfänger
Ab Fedora 22 wurde yum durch DNF ersetzt, sodass Sie es nicht installieren müssen, wenn Sie Fedora verwenden. Unter CentOS 7 und RHEL 7 können Sie es wie im untenstehenden Tutorial beschrieben installieren.
- So installieren Sie DNF unter CentOS 7
Die Verwendung von DNF ist YUM sehr ähnlich. Alle hier bereitgestellten Befehle wurden auf CentOS 7 Minimal Server Edition mit root getestet Benutzer.
1. Hilfe bekommen
Führen Sie Folgendes aus, um alle Hauptbefehle, Plugin-Befehle und Optionen aufzulisten:
# dnf help
Um Hilfe zu einem bestimmten Befehl zu erhalten, z. B. „install“, führen Sie Folgendes aus:
# dnf help install
Um die aktuell installierte DNF-Version zu erfahren, führen Sie Folgendes aus:
# dnf --version
2. Pakete verwalten
Dieser Abschnitt erläutert das Installieren, Aktualisieren, Auflisten, Suchen, Herunterladen, Neuinstallieren und Entfernen von Paketen.
Paketinformationen abrufen
Um die Details eines installierten oder nicht installierten Pakets abzurufen, führen Sie Folgendes aus:
# dnf info vim
Pakete installieren
Um ein neues Paket zu installieren, zum Beispiel vim , ausführen:
# dnf install vim
Wir können auch mehrere Pakete wie unten installieren.
# dnf install vim nano emacs
Sie müssen "y" eingeben, um die Installation fortzusetzen. Wenn Sie das nicht jedes Mal tun möchten, können Sie die Option "y" in die Befehle für die automatische Bestätigung aufnehmen.
# dnf install vim nano emacs -y
Dies wird nicht auf die Benutzerbestätigung warten. Stattdessen werden einfach alle Pakete automatisch installiert.
Pakete auflisten
Um alle verfügbaren und installierten Pakete aufzulisten:
# dnf list
Um nur alle installierten Pakete aufzulisten, verwenden wir:
# dnf list installed
Um nur die verfügbaren Pakete aufzulisten:
# dnf list available
Pakete aktualisieren
Um nach allen verfügbaren Updates zu suchen, gehen Sie wie folgt vor:
# dnf check-update
Oder,
# dnf list updates
Um ein einzelnes Paket (z. B. bash) zu aktualisieren, führen Sie Folgendes aus:
# dnf update bash
Führen Sie Folgendes aus, um anzuzeigen, ob ein Update für ein installiertes Paket vorhanden ist:
# dnf list yum.noarch Using metadata from Sat Feb 10 14:47:22 2018 Installed Packages yum.noarch 3.4.3-150.el7.centos @System Available Packages yum.noarch 3.4.3-154.el7.centos.1 update
Dieser Befehl zeigt die aktuell installierte Version und das verfügbare Update aus dem Repository an. In der obigen Ausgabe @system gibt die installierte Version und das Update an gibt das verfügbare Update aus dem Repository an.
So aktualisieren Sie mehrere Pakete:
# dnf update package1 package2
Übergeben Sie die Option "y" für die automatische Bestätigung.
# dnf update package1 package2 -y
Führen Sie zum Aktualisieren/Upgrade aller Pakete Folgendes aus:
# dnf update
# dnf upgrade
So synchronisieren Sie installierte Pakete mit den neuesten verfügbaren Versionen:
# dnf distro-sync
Pakete suchen
Um ein Paket aus dem Repository zu suchen, führen Sie Folgendes aus:
# dnf search vim
Dieser Befehl listet alle Pakete auf, die mit dem Wort "vim" übereinstimmen.
Pakete herunterladen
Manchmal möchten Sie vielleicht ein Paket herunterladen, aber nicht sofort installieren. Führen Sie in diesem Fall Folgendes aus:
# dnf download vim
Dieser Befehl lädt das vim-enhanced-xx.xx.x.rpm-Paket herunter, installiert es aber nicht.
Um das heruntergeladene Paket zu installieren, führen Sie Folgendes aus:
# dnf install vim-enhanced-7.4.160-2.el7.x86_64.rpm
Alle anderen erforderlichen Abhängigkeiten werden aus dem Repository heruntergeladen und installiert.
Pakete herabstufen
Um ein zuvor aktualisiertes Paket herunterzustufen, führen Sie Folgendes aus:
# dnf downgrade bash
Pakete neu installieren
Haben Sie Probleme mit einem bereits installierten Paket? Keine Bange! Sie können es jederzeit neu installieren.
Um ein Paket neu zu installieren, verwenden Sie:
# dnf reinstall vim
Pakete entfernen
Um ein Paket (z. B. vim) aus dem System zu entfernen, führen Sie Folgendes aus:
# dnf remove vim
Sie können auch die Option "Löschen" wie unten verwenden.
# dnf erase vim
3. Paketgruppen
Eine Paketgruppe ist eine Sammlung von Paketen, die einem gemeinsamen Zweck dienen, beispielsweise „Entwicklungstools“ oder „Webserver“. Wenn Sie eine Paketgruppe installieren, werden alle abhängigen Pakete heruntergeladen und installiert. Durch das Installieren von Gruppen sparen Sie viel Zeit.
Paketgruppen installieren
Um alle verfügbaren Paketgruppen aufzulisten, führen Sie Folgendes aus:
# dnf grouplist
Um eine Paketgruppe zu installieren, zum Beispiel „Entwicklungstools“, führen Sie Folgendes aus:
# dnf groupinstall 'Development Tools'
Dieser Befehl installiert alle Pakete, die zum Einrichten einer Entwicklungsumgebung erforderlich sind.
Paketgruppen aktualisieren
Um eine Paketgruppe zu aktualisieren, führen Sie Folgendes aus:
# dnf groupupdate 'Development Tools'
Paketgruppen entfernen
Führen Sie zum Entfernen einer Paketgruppe Folgendes aus:
# dnf groupremove 'Development Tools'
4. Arbeiten mit Repositories
Installierte Repositories auflisten
Standardmäßig werden alle Repositories im Verzeichnis /etc/yum.repos.d/ in CentOS/RHEL hinzugefügt. Sie können installierte Repositories mit dem Befehl auflisten:
# dnf repolist
Der obige Befehl zeigt nur die aktivierten Repositories an. Führen Sie Folgendes aus, um alle Repositories (sowohl aktivierte als auch deaktivierte) anzuzeigen:
# dnf repolist all
Repositories hinzufügen
Sie können ein Repository hinzufügen, indem Sie manuell eine package.repo-Datei im Verzeichnis /etc/yum.repos.d/ erstellen. DNF macht es jedoch noch einfacher.
Um ein neues Repository hinzuzufügen, führen Sie Folgendes aus:
# dnf config-manager --add-repo repository_url
Beispiel:
# dnf config-manager --add-repo http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/
Um das neu hinzugefügte Repository anzuzeigen, tun wir:
# dnf repolist created by dnf config-manager from http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ 115 kB/s | 3.5 MB 00:31 Using metadata from Sat Feb 10 14:47:22 2018 repo id repo name status base CentOS-7 - Base 9,591 epel Extra Packages for Enterprise Linux 7 - x86_64 12,278 extras CentOS-7 - Extras 388 springdale.math.ias.edu_data_puias_unsupported_7_x86_64_ created by dnf config-manager from http://springdale.math.ias.edu/data/puias/unsupporte 2,760 updates CentOS-7 - Updates
So zeigen Sie nur die .repo-Datei an:
# cat /etc/yum.repos.d/springdale.math.ias.edu_data_puias_unsupported_7_x86_64_.repo [springdale.math.ias.edu_data_puias_unsupported_7_x86_64_] name=created by dnf config-manager from http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ baseurl=http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ enabled=1
Repositories aktivieren
Um ein Repository zu aktivieren, verwenden Sie:
# dnf config-manager --set-enabled <repo-id>
Beispiel:
# dnf config-manager --set-enabled epel
Wir können dies überprüfen, indem wir den folgenden Befehl ausführen, um nur die aktivierten Repositories anzuzeigen.
# dnf repolist
Außerdem können wir die Aktivierungs- und Installationsoptionen wie unten kombinieren.
# dnf config-manager --set-enabled epel install zsh
Der obige Befehl aktiviert das EPEL-Repository und installiert das zsh-Paket.
Repositories deaktivieren
Um ein Repository, zum Beispiel EPEL, zu deaktivieren, verwenden wir:
# dnf config-manager --set-disabled epel
Wir können auch Aktivierungs- und Deaktivierungsoptionen wie unten kombinieren.
# dnf --enablerepo=epel --disablerepo=updates
Der obige Befehl aktiviert das EPEL-Repository und deaktiviert das Update-Repository.
5. Herausfinden, was etwas bringt
Mit DNF können Sie herausfinden, welches Paket einen bestimmten Befehl oder eine bestimmte Datei bereitstellt. Wenn Sie sich nicht genau erinnern, welches Paket einen bestimmten Befehl bereitstellt, den Sie verwenden wollten, kann DNF Ihnen helfen.
Finden Sie heraus, welches Paket einen bestimmten Befehl bereitstellt
Ich vermisse den guten alten "ifconfig"-Befehl. Dieser Befehl ist veraltet und in den neueren Versionen nicht verfügbar. Um herauszufinden, welches Paket dieses Gem bereitstellt, führen Sie Folgendes aus:
# dnf provides */ifconfig
Beispielausgabe:
Using metadata from Thu Feb 8 15:52:17 2018 net-tools-2.0-0.22.20131004git.el7.x86_64 : Basic networking tools Repo : base
Aha, ja! net-tools Paket stellt diesen Befehl bereit. Sie können dieses Paket also installieren, um den Befehl ifconfig zu verwenden.
Finden Sie heraus, welches Paket eine Datei bereitstellt
Lassen Sie uns herausfinden, welches Paket /bin/ls bereitstellt Datei. Führen Sie dazu Folgendes aus:
# dnf provides */bin/ls Using metadata from Thu Jun 30 12:51:16 2016 coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts Repo : @System coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts Repo : base
Wie Sie in der obigen Ausgabe sehen, coreutils Paket stellt eine /bin/ls-Datei bereit.
Lesen Sie auch:
- So finden Sie das Paket, das eine bestimmte Datei in Linux bereitstellt
6. Arbeiten mit dem DNF-Verlauf
Mit dem Befehl "dnf history" können wir alle Aktionen anzeigen, die wir mit dem DNF-Befehl durchgeführt haben.
# dnf history Using metadata from Sat Feb 10 14:47:22 2018 ID | Command line | Date a | Action | Altere ------------------------------------------------------------------------------- 2 | update bash | 2018-02-10 14:55 | Update | 1 1 | install vim | 2018-02-10 14:51 | E, I | 33 EE
Wie Sie in der obigen Ausgabe sehen, gab es zwei Transaktionen. Ich habe ein Paket namens "vim" installiert und das Paket "bash" aktualisiert. Die neuesten Transaktionen werden ganz oben angezeigt.
Um die Details einer bestimmten Transaktion anzuzeigen, verwenden Sie ihre ID wie unten.
# dnf history list 2
Wir können auch die vollständigen Details einer bestimmten Transaktion wie unten einsehen.
# dnf history info 2 Using metadata from Sat Feb 10 14:47:22 2018 Transaction ID : 2 Begin time : Sat Feb 10 14:55:38 2018 Begin rpmdb : 360:fa7bea798a10e850b2bf800182b377443b481652 End time : 14:55:39 2018 (1 seconds) End rpmdb : 360:dc9f6bb33b00fe1d74dd205586c0ff8c4674f8f7 User : root <root> Return-Code : Success Command Line : update bash Transaction performed with: Installed dnf-0.6.4-2.sdl7.noarch (unknown) Installed rpm-4.11.3-21.el7.x86_64 (unknown) Packages Altered: Upgraded bash-4.2.46-21.el7_3.x86_64 (unknown) Upgrade 4.2.46-29.el7_4.x86_64 @updates
Wie Sie sehen, wurde die Transaktion mit der ID 2 verwendet, um das Paket mit dem Namen "bash" zu aktualisieren. Wir können diese Transaktion jederzeit mit dem Befehl:
rückgängig machen# dnf history undo 2
Um die vorherige „Rückgängig“-Transaktion wiederherzustellen, führen Sie einfach Folgendes aus:
# dnf history redo 2
7. Aufbau des DNF-Metadaten-Cache
Der DNF-Metadaten-Cache wird automatisch erstellt, wenn wir Pakete installieren und aktualisieren. Wir müssen es also nicht manuell erstellen. DNF hat jedoch einen eingebauten Befehl zum Erstellen des Caches, um zukünftige Transaktionen schneller zu machen.
Um einen Metadaten-Cache zu erstellen, führen Sie Folgendes aus:
# dnf makecache Extra Packages for Enterprise Linux 7 - x86_64 155 kB/s | 15 MB 01:35 created by dnf config-manager from http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ 136 kB/s | 3.5 MB 00:26 CentOS-7 - Base 195 kB/s | 9.5 MB 00:49 CentOS-7 - Updates 240 kB/s | 7.9 MB 00:33 CentOS-7 - Extras 84 kB/s | 820 kB 00:09 Metadata cache created.
8. Aufräumen
Um unerwünschte/verwaiste Pakete zu entfernen, führen Sie Folgendes aus:
# dnf autoremove
Um alle zwischengespeicherten Pakete zu entfernen, führen Sie Folgendes aus:
# dnf clean all
Anstatt den Cache vollständig zu bereinigen, möchten Sie möglicherweise eine individuelle Bereinigung von Metadaten, dbcache, Paketen, Plugins usw. durchführen.
So entfernen Sie aus den Repository-Metadaten generierte Cache-Dateien:
# dnf clean dbcache
Dies zwingt DNF, die Cache-Dateien bei der nächsten Ausführung neu zu generieren.
Führen Sie Folgendes aus, um lokale Cookie-Dateien zu entfernen, die angeben, wann die Metadaten und Spiegellisten für jedes Repo heruntergeladen wurden:
# dnf clean expire-cache
DNF validiert den Cache für jedes Repo erneut, wenn es das nächste Mal verwendet wird.
So entfernen Sie Repository-Metadaten:
# dnf clean metadata
Mit dieser Option lädt DNF bei der nächsten Ausführung alle Metadaten herunter.
So entfernen Sie alle zwischengespeicherten Pakete vom System:
# dnf clean packages
Der folgende Befehl weist alle aktivierten Plugins an, ihre zwischengespeicherten Daten zu löschen.
# dnf clean plugins
Diese reichen gerade aus, um eine grundlegende Verwendung von DNF auf Fedora, RHEL und CentOS zu erhalten. Weitere Einzelheiten finden Sie in den Manpages.
$ man dnf