Rpm/dnf mit Rocky

Aus Xinux Wiki
Version vom 6. Juli 2026, 15:18 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Softwareverwaltung unter Rocky Linux = Unter Rocky Linux basiert die Softwareverwaltung auf zwei Werkzeugen die zusammenspielen: rpm und dnf. ;rpm (Red Hat…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Softwareverwaltung unter Rocky Linux

Unter Rocky Linux basiert die Softwareverwaltung auf zwei Werkzeugen die zusammenspielen: rpm und dnf.

rpm (Red Hat Package Manager)
Das Backend – verwaltet einzelne Pakete, löst aber keine Abhängigkeiten automatisch auf. Jedes installierte Paket ist in der rpm-Datenbank registriert. RPM kennt genau welche Dateien zu welchem Paket gehören, welche Abhängigkeiten bestehen und ob Dateien seit der Installation verändert wurden.
dnf (Dandified YUM)
Das Frontend – baut auf rpm auf, löst Abhängigkeiten automatisch auf, lädt Pakete aus Repositories und ist der Standard-Paketmanager unter Rocky Linux. dnf hat yum abgelöst.
Im Alltag wird dnf verwendet – rpm kommt zum Einsatz wenn man tiefer in ein Paket schauen, eine einzelne .rpm-Datei installieren oder die Integrität des Systems prüfen will.

Repositories

Ein Repository ist eine Paketquelle – eine Sammlung von RPM-Paketen auf einem Server. dnf weiß welche Repos aktiv sind und lädt Pakete von dort herunter.

Konfigurationsdateien

Jedes Repository hat eine eigene .repo-Datei unter /etc/yum.repos.d/
  • ls /etc/yum.repos.d/
rocky.repo  rocky-addons.repo  rocky-extras.repo  rocky-devel.repo
Aufbau einer .repo-Datei
  • cat /etc/yum.repos.d/rocky.repo
[baseos]
name=Rocky Linux $releasever - BaseOS
mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

Erklärungen

[baseos]
Der eindeutige Name des Repositories – wird bei dnf-Befehlen als ID verwendet
gpgcheck=1
Pakete werden mit dem GPG-Schlüssel des Repositories verifiziert – verhindert manipulierte Pakete
enabled=1
Repository ist aktiv – 0 deaktiviert es
gpgkey
Pfad zum GPG-Schlüssel der zur Verifikation genutzt wird

Repositories anzeigen

Alle aktiven Repositories
  • dnf repolist
Alle Repositories inkl. deaktivierter
  • dnf repolist all

Repository hinzufügen

Ein neues Repository lässt sich auf drei Arten hinzufügen – je nachdem was der Anbieter bereitstellt
Variante 1 – fertige .repo-Datei per URL
Legt automatisch eine neue Datei unter /etc/yum.repos.d/ an
Variante 2 – Repository manuell per Baseurl anlegen (kein .repo-File vorhanden)
  • vim /etc/yum.repos.d/eigenes.repo
[eigenes-repo]
name=Eigenes Repository
baseurl=https://example.com/pfad/zum/repo/
gpgcheck=1
enabled=1
gpgkey=https://example.com/pfad/zum/RPM-GPG-KEY
Variante 3 – Release-Paket installiert Repo-Konfiguration gleich mit (z.B. bei EPEL, siehe unten)
  • dnf install -y epel-release
Nach dem Hinzufügen immer die Metadaten aktualisieren und prüfen ob das Repo erreichbar ist
  • dnf makecache
  • dnf repolist
Merksatz
mirrorlist verweist auf eine Liste von Spiegelservern (Rocky-Standard), baseurl zeigt direkt auf einen einzelnen Server – für eigene/interne Repos i.d.R. baseurl verwenden

Repository aktivieren/deaktivieren

  • dnf config-manager --set-enabled crb
  • dnf config-manager --set-disabled crb

GPG-Schlüssel

GPG-Schlüssel stellen sicher dass Pakete wirklich vom Repository-Betreiber stammen und nicht manipuliert wurden. Rocky Linux liefert seine Schlüssel unter /etc/pki/rpm-gpg/ mit.
Schlüssel importieren
  • rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
Alle importierten Schlüssel anzeigen
  • rpm -qa gpg-pubkey

EPEL

EPEL (Extra Packages for Enterprise Linux) ist ein offizielles Fedora-Projekt das zusätzliche Pakete für RHEL-basierte Systeme bereitstellt – viele nützliche Tools die in den Standard-Repos fehlen.

EPEL installieren

  • dnf install -y epel-release
  • dnf repolist | grep epel

CRB aktivieren

Manche EPEL-Pakete benötigen das CRB-Repository (CodeReady Builder) – früher PowerTools genannt
  • dnf config-manager --set-enabled crb

Beispiel: htop aus EPEL

  • dnf install -y htop

Pakete verwalten (dnf)

Installieren

Paket installieren – Abhängigkeiten werden automatisch aufgelöst
  • dnf install httpd
Mehrere Pakete auf einmal
  • dnf install -y httpd php php-fpm
Paket erneut installieren
  • dnf reinstall httpd

Entfernen

Paket entfernen
  • dnf remove httpd
Nicht mehr benötigte Abhängigkeiten entfernen
  • dnf autoremove

Aktualisieren

Einzelnes Paket aktualisieren
  • dnf update httpd
Gesamtes System aktualisieren
  • dnf update
Nur prüfen ob Updates verfügbar sind – nichts installieren
  • dnf check-update
Nur Security-Updates
  • dnf update --security
  • dnf updateinfo list security

Nach Updates: Neustart nötig?

Zeigt ob Dienste oder das System nach Updates neu gestartet werden müssen
  • dnf needs-restarting
  • dnf needs-restarting -r

Pakete suchen und inspizieren (dnf)

Suchen

Sucht in Paketnamen und Beschreibungen
  • dnf search httpd
Welches Paket liefert eine bestimmte Datei oder einen Befehl
  • dnf provides /usr/sbin/httpd
  • dnf provides ifconfig

Informationen anzeigen

Detaillierte Informationen zu einem Paket
  • dnf info httpd

Listen

Alle installierten Pakete
  • dnf list installed
Alle verfügbaren Pakete
  • dnf list available
Alle Pakete für die Updates verfügbar sind
  • dnf list updates

Pakete herunterladen ohne zu installieren

Benötigt das Plugin dnf-plugins-core
  • dnf install -y dnf-plugins-core
Paket als RPM-Datei ins aktuelle Verzeichnis laden
  • dnf download mc
Inklusive aller Abhängigkeiten
  • dnf download --resolve mc
In ein bestimmtes Zielverzeichnis
  • dnf download --resolve --destdir=/tmp/pakete mc
Nützlich für Offline-Installationen (z.B. DMZ-Server ohne Internetzugang) – Pakete auf einer Online-Maschine laden, dann per scp übertragen
Heruntergeladenes Paket installieren
  • dnf install ./mc-*.rpm

Paketgruppen

Paketgruppen bündeln thematisch zusammengehörige Pakete – z.B. "Server with GUI" oder "Development Tools"
Alle Gruppen anzeigen
  • dnf grouplist
Gruppe installieren
  • dnf groupinstall "Development Tools"
  • dnf groupinstall "Server with GUI"
Gruppe aktualisieren
  • dnf groupupdate "Development Tools"
Gruppe entfernen
  • dnf groupremove "Development Tools"

History

dnf protokolliert alle Aktionen – Installationen, Updates, Entfernungen lassen sich rückgängig machen
Historie anzeigen
  • dnf history
Details zu einem Eintrag
  • dnf history info 5
Transaktion rückgängig machen
  • dnf history undo 5

Cache

dnf legt Paketmetadaten lokal im Cache ab – beschleunigt Abfragen, kann aber veralten
Cache aktualisieren
  • dnf makecache
Cache leeren
  • dnf clean all
Nur Metadaten löschen
  • dnf clean metadata

Modulstreams

Rocky Linux 9 nutzt Modulstreams um verschiedene Versionen desselben Pakets parallel anzubieten – z.B. PHP 8.1 und PHP 8.2
Verfügbare Module anzeigen
  • dnf module list
Modul aktivieren
  • dnf module enable php:8.2
Modul installieren
  • dnf module install php:8.2
Aktiven Stream anzeigen
  • dnf module list php

RPM – direkter Zugriff auf die Paketdatenbank

Mit dem Query-Modus (-q) lässt sich die RPM-Datenbank nach installierten Paketen durchsuchen

Paketname anzeigen

Vollständigen Namen des installierten Pakets anzeigen
  • rpm -q mc
mc-4.8.28-1.el9.x86_64

Paketinformationen

Detaillierte Informationen – Version, Beschreibung, Lizenz, Installationsdatum
  • rpm -qi mc

Dateien eines Pakets

Alle Dateien die zum Paket gehören
  • rpm -ql mc
Nur Konfigurationsdateien
  • rpm -qc mc
Nur Dokumentationsdateien
  • rpm -qd mc

Zu welchem Paket gehört eine Datei?

Sehr nützlich wenn man wissen will woher eine Datei stammt
  • rpm -qf /usr/sbin/httpd
httpd-2.4.57-5.el9.x86_64
  • rpm -qf /sbin/ifconfig
net-tools-2.0-0.62.el9.x86_64
Merksatz
dnf provides fragt Repo-Metadaten (braucht Zugriff aufs Repo), rpm -qf fragt nur die lokale Datenbank (funktioniert auch offline)

Abhängigkeiten

Was braucht das Paket
  • rpm -q --requires mc
Was stellt das Paket zur Verfügung
  • rpm -q --provides mc
Welches Paket stellt einen bestimmten Service bereit
  • rpm -q --whatprovides libext2fs.so.2
Welche Pakete nutzen einen Service
  • rpm -q --whatrequires libext2fs.so.2

Installationsskripte anzeigen

Zeigt pre/postinstall und pre/postuninstall Skripte – nützlich zur Fehlersuche
  • rpm -q --scripts httpd

Abfragen auf .rpm-Dateien

Mit -p (package) lässt sich eine noch nicht installierte .rpm-Datei abfragen – ohne sie zu installieren
Paketname
  • rpm -qp mc.rpm
Paketinformationen
  • rpm -qpi mc.rpm
Alle Dateien im Paket
  • rpm -qlp mc.rpm
Konfigurationsdateien im Paket
  • rpm -qpc mc.rpm
Dokumentationsdateien im Paket
  • rpm -qpd mc.rpm

Direkte Installation per rpm

Im Normalfall wird dnf für Installationen verwendet – rpm direkt dann wenn eine einzelne .rpm-Datei vorliegt
Paket installieren
  • rpm -ivh paket.rpm
Installation testen ohne wirklich zu installieren
  • rpm -i --test paket.rpm
Bereits installiertes Paket erneut installieren – Konfigurationen bleiben erhalten
  • rpm -i --replacepkgs paket.rpm
Installation ohne Abhängigkeitsprüfung – nur im Notfall
  • rpm -i --nodeps paket.rpm
Kombination aus replacepkgs und replacefiles
  • rpm -i --force paket.rpm
Erklärung der Optionen
  • -i: installieren
  • -v: verbose – zeigt was passiert
  • -h: Hash – zeigt Fortschrittsbalken mit # Zeichen

Upgrade

Paket aktualisieren – falls noch nicht installiert wird es installiert
  • rpm -Uvh paket.rpm

Entfernen

Paket deinstallieren
  • rpm -e mc
Entfernen ohne Abhängigkeitsprüfung – Vorsicht
  • rpm -e --nodeps mc

Verifizieren

RPM kann prüfen ob Dateien seit der Installation verändert wurden – nützlich zur Integritätsprüfung
Alle installierten Pakete verifizieren
  • rpm -Va
Einzelnes Paket verifizieren
  • rpm -V httpd
Die Ausgabe zeigt was sich geändert hat – ein Punkt bedeutet ok, ein Buchstabe bedeutet Abweichung
Zeichen Bedeutung
. Keine Abweichung
5 MD5-Prüfsumme geändert
S Dateigröße geändert
L Symbolischer Link geändert
T Zeitmarkierung geändert
D Gerätedatei geändert
U Besitzer (User) geändert
G Gruppe geändert
M Rechte (Mode) geändert
? Unbekannte Abweichung
Beispielausgabe
  • rpm -V sendmail
.......T c /etc/rc.d/init.d/sendmail
S.5....T c /etc/sendmail.cf
c steht für Konfigurationsdatei – Änderungen dort sind normal und werden oft ignoriert

GPG-Signaturen prüfen

Jedes RPM-Paket ist mit dem GPG-Schlüssel des Herstellers signiert – RPM kann das prüfen
  • rpm --checksig paket.rpm
paket.rpm: digests signatures OK
Alle importierten GPG-Schlüssel anzeigen
  • rpm -qa gpg-pubkey
Schlüssel importieren
  • rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9