Rpm/dnf mit Rocky
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…“)
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
- dnf config-manager --add-repo https://example.com/pfad/zum/repo.repo
- 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