DNF steht für Dandified YUM ist ein Softwarepaketmanager für RPM-basierte Linux-Distributionen. Es wird verwendet, um Pakete im Fedora/RHEL/CentOS-Betriebssystem zu installieren, zu aktualisieren und zu entfernen. Es ist der Standardpaketmanager von Fedora 22, CentOS8 und RHEL8. DNF ist die nächste Generation von YUM und soll YUM in RPM-basierten Systemen ersetzen. DNF ist leistungsstark und verfügt über robuste Funktionen, die Sie in yum finden werden. DNF vereinfacht die Verwaltung von Paketgruppen und ist in der Lage, Abhängigkeitsprobleme automatisch zu lösen.
In diesem Tutorial erklären wir, wie Sie Pakete mit DNF unter CentOS 8 verwalten.
Anforderungen
- Ein Server mit CentOS 8.
- Ein Root-Passwort wird für Ihren Server eingerichtet.
DNF installieren
Standardmäßig ist DNF im Betriebssystem CentOS 8 vorinstalliert. Wenn es nicht installiert ist, können Sie es installieren, indem Sie den folgenden Befehl ausführen:
yum install dnf
Als nächstes können Sie die Version von DNF mit dem folgenden Befehl überprüfen:
dnf --version
Sie sollten die folgende Ausgabe sehen:
4.0.9 Installed: dnf-0:4.0.9.2-5.el8.noarch at Friday 04 October 2019 05:27:09 AM GMT Built : CentOS Buildsys <[email protected]> at Monday 13 May 2019 07:35:13 PM GMT Installed: rpm-0:4.14.2-9.el8.x86_64 at Friday 04 October 2019 05:20:17 AM GMT Built : CentOS Buildsys <[email protected]> at Saturday 11 May 2019 02:04:19 AM GMT
Installierte und verfügbare Pakete auflisten
Mit dem folgenden Befehl können Sie alle installierten Pakete auf Ihrem System auflisten:
dnf list installed
Sie sollten alle installierten Pakete in der folgenden Ausgabe sehen:
Installed Packages NetworkManager.x86_64 1:1.14.0-14.el8 @anaconda NetworkManager-config-server.noarch 1:1.14.0-14.el8 @anaconda NetworkManager-libnm.x86_64 1:1.14.0-14.el8 @anaconda NetworkManager-team.x86_64 1:1.14.0-14.el8 @anaconda NetworkManager-tui.x86_64 1:1.14.0-14.el8 @anaconda PackageKit.x86_64 1.1.12-2.el8 @AppStream PackageKit-glib.x86_64 1.1.12-2.el8 @AppStream acl.x86_64 2.2.53-1.el8 @anaconda adcli.x86_64 0.8.2-2.el8 @anaconda at.x86_64 3.1.20-11.el8 @anaconda attr.x86_64 2.4.48-3.el8 @anaconda audit.x86_64 3.0-0.10.20180831git0047a6c.el8 @anaconda audit-libs.x86_64 3.0-0.10.20180831git0047a6c.el8 @anaconda authselect.x86_64 1.0-13.el8 @anaconda authselect-compat.x86_64 1.0-13.el8 @AppStream authselect-libs.x86_64 1.0-13.el8 @anaconda avahi-libs.x86_64 0.7-19.el8 @anaconda basesystem.noarch 11-5.el8 @anaconda
Sie können auch alle installierten und verfügbaren Pakete mit dem folgenden Befehl auflisten:
dnf list
Sie sollten die folgende Ausgabe sehen:
Last metadata expiration check: 4 days, 22:47:10 ago on Friday 04 October 2019 02:14:39 AM EDT. Installed Packages NetworkManager.x86_64 1:1.14.0-14.el8 @anaconda NetworkManager-config-server.noarch 1:1.14.0-14.el8 @anaconda NetworkManager-libnm.x86_64 1:1.14.0-14.el8 @anaconda NetworkManager-team.x86_64 1:1.14.0-14.el8 @anaconda NetworkManager-tui.x86_64 1:1.14.0-14.el8 @anaconda PackageKit.x86_64 1.1.12-2.el8 @AppStream PackageKit-glib.x86_64 1.1.12-2.el8 @AppStream acl.x86_64 2.2.53-1.el8 @anaconda adcli.x86_64 0.8.2-2.el8 @anaconda at.x86_64 3.1.20-11.el8 @anaconda attr.x86_64 2.4.48-3.el8 @anaconda audit.x86_64 3.0-0.10.20180831git0047a6c.el8 @anaconda audit-libs.x86_64 3.0-0.10.20180831git0047a6c.el8 @anaconda authselect.x86_64 1.0-13.el8 @anaconda authselect-compat.x86_64 1.0-13.el8 @AppStream authselect-libs.x86_64 1.0-13.el8 @anaconda avahi-libs.x86_64 0.7-19.el8 @anaconda : :
Sie können auch nur verfügbare Pakete mit dem folgenden Befehl auflisten:
dnf list available
Sie sollten die folgende Ausgabe sehen:
Last metadata expiration check: 4 days, 22:48:21 ago on Friday 04 October 2019 02:14:39 AM EDT. Available Packages BackupPC.src 4.3.1-2.el8 epel-source BackupPC.x86_64 4.3.1-2.el8 epel BackupPC-XS.src 0.59-3.el8 epel-source BackupPC-XS.x86_64 0.59-3.el8 epel BackupPC-XS-debuginfo.x86_64 0.59-3.el8 epel-debuginfo BackupPC-XS-debugsource.x86_64 0.59-3.el8 epel-debuginfo BackupPC-debuginfo.x86_64 4.3.1-2.el8 epel-debuginfo BackupPC-debugsource.x86_64 4.3.1-2.el8 epel-debuginfo CGSI-gSOAP.src 1.3.11-7.el8 epel-source CGSI-gSOAP.x86_64 1.3.11-7.el8 epel CGSI-gSOAP-debuginfo.x86_64 1.3.11-7.el8 epel-debuginfo CGSI-gSOAP-debugsource.x86_64 1.3.11-7.el8 epel-debuginfo CGSI-gSOAP-devel.x86_64 1.3.11-7.el8 epel
Paket suchen und installieren
Sie können jedes Paket, das Sie installieren möchten, mit dem folgenden Befehl durchsuchen:
dnf search httpd
Sie sollten die folgende Ausgabe sehen:
========================================================= Name Exactly Matched: httpd ========================================================= httpd.x86_64 : Apache HTTP Server ======================================================== Name & Summary Matched: httpd ======================================================== centos-logos-httpd.noarch : CentOS-related icons and pictures used by httpd keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client python3-keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client ============================================================= Name Matched: httpd ============================================================= httpd-devel.x86_64 : Development interfaces for the Apache HTTP server httpd-tools.x86_64 : Tools for use with the Apache HTTP Server httpd-manual.noarch : Documentation for the Apache HTTP server libmicrohttpd.i686 : Lightweight library for embedding a webserver in applications libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications httpd-filesystem.noarch : The basic directory layout for the Apache HTTP server =========================================================== Summary Matched: httpd ============================================================ mod_dav_svn.x86_64 : Apache httpd module for Subversion server mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server
Sie können jetzt das httpd-Paket mit dem folgenden Befehl installieren:
dnf install httpd
Um das Paket httpd neu zu installieren, führen Sie den folgenden Befehl aus:
dnf reinstall httpd
In einigen Fällen müssen Sie die Pakete herunterladen, ohne sie zu installieren. Sie können ein bestimmtes Paket mit dem folgenden Befehl herunterladen:
dnf download httpd
Sie können auch Details des Pakets httpd mit dem folgenden Befehl anzeigen:
dnf info httpd
Sie sollten die folgende Ausgabe erhalten:
Last metadata expiration check: 0:01:02 ago on Wednesday 09 October 2019 01:07:23 AM EDT. Available Packages Name : httpd Version : 2.4.37 Release : 11.module_el8.0.0+172+85fc1f40 Arch : x86_64 Size : 1.7 M Source : httpd-2.4.37-11.module_el8.0.0+172+85fc1f40.src.rpm Repo : AppStream Summary : Apache HTTP Server URL : https://httpd.apache.org/ License : ASL 2.0 Description : The Apache HTTP Server is a powerful, efficient, and extensible : web server.
Systempakete aktualisieren
Zuerst können Sie mit dem folgenden Befehl nach Updates für alle Systempakete auf Ihrem System suchen:
dnf check-update
Sie sollten die folgende Ausgabe erhalten:
Last metadata expiration check: 0:00:10 ago on Wednesday 09 October 2019 01:10:16 AM EDT. bind-export-libs.x86_64 32:9.11.4-17.P2.el8_0.1 BaseOS bind-libs.x86_64 32:9.11.4-17.P2.el8_0.1 AppStream bind-libs-lite.x86_64 32:9.11.4-17.P2.el8_0.1 AppStream bind-license.noarch 32:9.11.4-17.P2.el8_0.1 AppStream bind-utils.x86_64 32:9.11.4-17.P2.el8_0.1 AppStream bpftool.x86_64 4.18.0-80.7.1.el8_0 BaseOS cockpit.x86_64 185.1-1.el8_0 BaseOS cockpit-bridge.x86_64 185.1-1.el8_0 BaseOS cockpit-system.noarch 185.1-1.el8_0 BaseOS cockpit-ws.x86_64 185.1-1.el8_0 BaseOS epel-release.noarch 8-6.el8 epel epel-release.src 8-6.el8 epel-source iptables.x86_64 1.8.2-9.el8_0.1 BaseOS iptables-ebtables.x86_64 1.8.2-9.el8_0.1 BaseOS iptables-libs.x86_64 1.8.2-9.el8_0.1 BaseOS kernel.x86_64 4.18.0-80.7.1.el8_0 BaseOS kernel-core.x86_64 4.18.0-80.7.1.el8_0 BaseOS kernel-modules.x86_64 4.18.0-80.7.1.el8_0 BaseOS kernel-tools.x86_64 4.18.0-80.7.1.el8_0 BaseOS kernel-tools-libs.x86_64 4.18.0-80.7.1.el8_0 BaseOS
Sie können jetzt alle auf Ihrem System installierten Pakete mit dem folgenden Befehl aktualisieren:
dnf update
Um das spezifische Paket zu aktualisieren, führen Sie den folgenden Befehl aus:
dnf update httpd
Gruppenpakete auflisten und installieren
Sie können alle Gruppenpakete mit dem folgenden Befehl auflisten:
dnf grouplist
Sie sollten die folgende Liste erhalten:
Last metadata expiration check: 0:03:42 ago on Wednesday 09 October 2019 01:10:16 AM EDT. Available Environment Groups: Server with GUI Minimal Install Workstation KDE Plasma Workspaces Virtualization Host Custom Operating System Installed Environment Groups: Server Installed Groups: Container Management Headless Management Available Groups: .NET Core Development RPM Development Tools Smart Card Support Development Tools Graphical Administration Tools Legacy UNIX Compatibility Network Servers Scientific Support Security Tools System Tools Fedora Packager
Installieren Sie nun ein bestimmtes Gruppenpaket mit dem folgenden Befehl:
dnf groupinstall 'System Tools'
Sie können ein Gruppenpaket auch mit dem folgenden Befehl aktualisieren:
dnf groupupdate 'System Tools'
Repositories auflisten
Sie können alle Repositories mit dem folgenden Befehl auflisten:
dnf repolist all
Sie sollten die folgende Ausgabe sehen:
Last metadata expiration check: 0:10:39 ago on Wednesday 09 October 2019 01:10:16 AM EDT. repo id repo name status AppStream CentOS-8 - AppStream enabled: 4,928 AppStream-source CentOS-8 - AppStream Sources disabled BaseOS CentOS-8 - Base enabled: 2,713 BaseOS-source CentOS-8 - BaseOS Sources disabled PowerTools CentOS-8 - PowerTools disabled base-debuginfo CentOS-8 - Debuginfo disabled c8-media-AppStream CentOS-AppStream-8 - Media disabled c8-media-BaseOS CentOS-BaseOS-8 - Media disabled centosplus CentOS-8 - Plus disabled centosplus-source CentOS-8 - Plus Sources disabled cr CentOS-8 - cr disabled *epel Extra Packages for Enterprise Linux 8 - x86_64 enabled: 1,816 *epel-debuginfo Extra Packages for Enterprise Linux 8 - x86_64 - Debug enabled: 1,187 epel-playground Extra Packages for Enterprise Linux 8 - Playground - x86_64 disabled epel-playground-debuginfo Extra Packages for Enterprise Linux 8 - Playground - x86_64 - Debug disabled epel-playground-source Extra Packages for Enterprise Linux 8 - Playground - x86_64 - Source disabled *epel-source Extra Packages for Enterprise Linux 8 - x86_64 - Source enabled: 792 *epel-testing Extra Packages for Enterprise Linux 8 - Testing - x86_64 enabled: 538 *epel-testing-debuginfo Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Debug enabled: 347 *epel-testing-source Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Source enabled: 216 extras CentOS-8 - Extras enabled: 3 extras-source CentOS-8 - Extras Sources disabled fasttrack CentOS-8 - fasttrack disabled
Listen Sie nun mit dem folgenden Befehl nur aktivierte Repositories auf dem System auf:
dnf repolist
Sie sollten die folgende Ausgabe sehen:
Last metadata expiration check: 0:12:14 ago on Wednesday 09 October 2019 01:10:16 AM EDT. repo id repo name status AppStream CentOS-8 - AppStream 4,928 BaseOS CentOS-8 - Base 2,713 *epel Extra Packages for Enterprise Linux 8 - x86_64 1,816 *epel-debuginfo Extra Packages for Enterprise Linux 8 - x86_64 - Debug 1,187 *epel-source Extra Packages for Enterprise Linux 8 - x86_64 - Source 792 *epel-testing Extra Packages for Enterprise Linux 8 - Testing - x86_64 538 *epel-testing-debuginfo Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Debug 347 *epel-testing-source Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Source 216 extras CentOS-8 - Extras 3
Pakete entfernen
Mit dem folgenden Befehl können Sie jedes unerwünschte Paket von Ihrem System entfernen:
dnf remove httpd
Entfernen Sie als Nächstes unerwünschte Abhängigkeiten, die mit dem Paket httpd installiert wurden, indem Sie den folgenden Befehl ausführen:
dnf autoremove
Sie können alle zwischengespeicherten Pakete mit dem folgenden Befehl bereinigen:
dnf clean all
Sie können das Gruppenpaket auch mit dem folgenden Befehl entfernen:
dnf groupremove 'System Tools'
Schlussfolgerung
Im obigen Tutorial haben wir gelernt, wie man Pakete mit dem DNF-Befehl unter CentOS 8 verwaltet. Wenn Sie Fragen haben, können Sie mich gerne fragen.