Wie man DNF auf Rocky Linux verwendet: Pakete, Repositories und Updates

DNF (Dandified YUM) ist das Standardwerkzeug auf Rocky Linux zum Suchen, Installieren, Aktualisieren und Entfernen von Paketen sowie zum Verwalten des Transaktionsverlaufs. Bevor ein Befehl ausgeführt wird, ist es wichtig, das Zielpaket und die Liste der Abhängigkeitsänderungen zu überprüfen und auf Produktionsservern das Repository und den Aktualisierungsbereich vor der Anwendung von Änderungen zu klären.

DNF-Version und Grundformat

Da die DNF-Implementierung und das Ausgabeformat je nach Rocky Linux-Version unterschiedlich sein können, sollte zuerst die Version überprüft werden. Das typische Befehlsformat ist dnf [options] command [target].

dnf --version
dnf --help

Abfragebefehle können als normaler Benutzer ausgeführt werden, aber das Installieren, Entfernen oder Aktualisieren von Paketen, das das System verändert, erfordert Administratorrechte.

Nach Paketen suchen und Informationen prüfen

Suchen nach Name und Beschreibung

dnf search nginx
dnf info nginx

search sucht im Namen und in der Beschreibung, und info zeigt Version, Architektur, Repository und Beschreibung an. Wenn es mehrere Versionen oder Architekturen mit demselben Namen gibt, prüfen Sie die Ergebnisse sorgfältig.

Pakete finden, die Dateien oder Befehle bereitstellen

dnf provides '*/semanage'
dnf provides /usr/bin/rsync

Wenn Sie den genauen Pfad nicht kennen, können Sie ein Platzhalterzeichen verwenden. Es ist sicherer, das Muster in Anführungszeichen zu setzen, damit es nicht zuerst von der Shell erweitert wird.

Pakete installieren und neu installieren

sudo dnf install nginx
sudo dnf reinstall nginx

install löst die erforderlichen Abhängigkeiten zusammen mit dem Paket. reinstall installiert dieselbe Version erneut, wenn die Paketdatei beschädigt ist, aber es ist kein Befehl, der von einem Administrator geänderte Konfigurationsdateien zwangsweise zurücksetzt.

Lokale RPM-Dateien können auch mit DNF installiert werden, um Abhängigkeiten aus dem Repository aufzulösen.

sudo dnf install ./example-package.rpm

Prüfen und Anwenden von Updates

Verfügbare Updates abfragen

dnf check-update
dnf updateinfo list

dnf check-update kann den Exit-Code 100 zurückgeben, wenn Updates verfügbar sind. Wenn ein Shell-Skript dies nicht von einem normalen Fehlercode unterscheidet, könnte es fälschlicherweise den normalen Zustand "Updates verfügbar" als Fehler interpretieren.

Alle oder bestimmte Pakete aktualisieren

sudo dnf upgrade
sudo dnf upgrade openssl

Kernel-, C-Bibliotheks- und Core-Service-Updates können einen Neustart oder einen Service-Neustart erfordern. In Produktionsumgebungen sollten die Änderungsdetails, die Wartungszeit und die Rollback-Methoden im Voraus vorbereitet werden.

Paketentfernung und Bereinigung unnötiger Abhängigkeiten

sudo dnf remove nginx
sudo dnf autoremove --assumeno

remove kann nicht nur das Zielpaket, sondern auch Abhängigkeitspakete vorschlagen, die nicht mehr als notwendig erachtet werden. Achten Sie darauf, die Löschliste auf dem Bestätigungsbildschirm zu lesen. autoremove --assumeno ist nützlich, um Cleanup-Kandidaten zu überprüfen, ohne sie tatsächlich zu löschen.

Verwaltung von Installationslisten und Repositories

Anzeigen von Paketlisten

dnf list --installed
dnf list --available
dnf list --upgrades

Überprüfen des Repository-Status

dnf repolist
dnf repolist --all
dnf repository-packages appstream list --available

Beim Aktivieren zusätzlicher Repositories sollten Sie den Anbieter, den Signaturschlüssel, den Unterstützungsbereich und die Möglichkeit, Pakete aus den Standard-Repositories zu ersetzen, überprüfen. Zur Fehlerbehebung können Sie wählen, ein bestimmtes Repository nur einmal auszuschließen oder zu aktivieren.

sudo dnf --disablerepo='example-repo' upgrade
sudo dnf --enablerepo='example-repo' install package-name

Überprüfung der Transaktionshistorie und Überprüfung des Rollbacks

dnf history
dnf history info transaction_ID
sudo dnf history undo transaction_ID

`history undo` kann fehlschlagen, wenn das Repository die erforderliche vorherige Version nicht mehr bereitstellt oder wenn sich die Abhängigkeiten nach der Transaktion geändert haben. Es handelt sich nicht um eine Sicherungsfunktion, die Datenbanken, Konfigurationen oder Anwendungsdaten wiederherstellt. Daher müssen Sie eine separate betriebliche Rollback-Methode vorbereiten.

Cache- und Metadatenverwaltung

Befehl Zweck
dnf makecache Lädt Metadaten von einem aktiven Repository vorab herunter.
dnf clean metadata Löscht gespeicherte Repository-Metadaten.
dnf clean packages Löscht Paketdateien, die im Cache verbleiben.
dnf clean all Reinigt den DNF-Cache, einschließlich Metadaten und Paketen.

Es ist nicht nötig, jedes Mal, wenn ein Repository-Fehler auftritt, routinemäßig `clean all` auszuführen. Zuerst hilft es, das Netzwerk, die Systemzeit, die Repository-URL und GPG-Signaturfehlermeldungen zu überprüfen, um die Ursache zu identifizieren.

Zusammenfassung der häufig verwendeten Befehle

Zweck Befehl
Suchen dnf search keyword
Informationen überprüfen dnf info package_name
Installieren sudo dnf install package_name
Aktualisieren sudo dnf upgrade
Löschen sudo dnf remove package-name
Datei bereitstellendes Paket dnf provides '*/filename'
Transaktionsverlauf dnf history
Repository-Liste dnf repolist --all

Sichere Bedienung

  • Bevor die automatische Bestätigungsoption verwendet wird, überprüft eine Person zunächst die von DNF vorgeschlagene Installations-/Entfernungsliste.
  • Für wichtige Server Daten und Einstellungen vor dem Update sichern und das Wiederherstellungsverfahren testen.
  • Überprüfen Sie die Quelle der Repository-Dateien und GPG-Schlüssel, und halten Sie unnötige externe Repositories nicht ständig aktiviert.
  • Bei mehreren Servern lassen sich Versionsunterschiede verringern, indem sie dieselben Repository-Snapshots oder verifizierte automatisierte Verfahren verwenden.

Referenzdokumente

Detaillierte Optionen und Exit-Status für jeden Befehl finden Sie in der offiziellen DNF-Befehlsreferenzdokumentation.