RPM
Aus Fedorawiki.de
RPM (Red Hat Package Manager) ist ein Paketmanagementsystem für die Shell, welches von Red Hat entwickelt wurde. Es unterstützt ein effektives Versionsmanagement, Abhängigkeiten und eine saubere und vollständige Deinstallation von Red Hat Paketen (RP). Das Herzstück von RPM bildet seine Datenbank.
Inhaltsverzeichnis |
Typische Anwendungsfälle
RPM unterstützt 5 Anwendungsmöglichkeiten:
Paketeinrichtung, -entfernung, -abfrage, -prüfung und -versionsmanipulation
Wenn bei einer rpm-Aktion ein rpm-Paket als Argument angegeben werden soll, kann rpm auch mit URLs umgehen - statt foor-barr.rpm geht also auch http://www.xyz.de/foo-bar.rpm.
Query ob ein Paket installiert ist:
rpm -q paketname
Installation eines oder mehrerer Pakete:
rpm -ihv paketname1-<version>.rpm paketname2-<version>.rpm
Aktualisierung eines oder mehrerer Pakete:
rpm -Uhv paketname1-<version>.rpm paketname2-<version>.rpm
oder
rpm -Fhv paketname1-<version>.rpm paketname2-<version>.rpm
Importieren eines GPG-Keys:
rpm --import <GPG-KEY>
Abfrage aller importierten GPG-Schlüssel:
$ rpm -qa gpg-pubkey
Deinstallieren eines oder mehrerer Pakete:
rpm -e paketname1 paketname2
Downgrade zu einer geringeren Versionsnummer:
rpm -Uhv --oldpackage paketname1-<version>.rpm
Neuinstallation eines bereits installierten Paketes (gleiche Version)
rpm -ivh --replacepkgs Paketname-<version>.rpm
RPM-Datenbank-Abfragen
Die hier aufgeführten Aktionen eignen sich zur Abfrage von der Paketinformationen, die RPM in einer Datenbank speichert. Will man aber statt dessen die entsprechenden Informationen über ein noch nicht installiertes Paket erhalten, muss die Option -p hinzugefügt werden - statt rpm -qa also rpm -qap.
Informationen zu mehreren oder allen Paketen abrufen
Paketnamen aller eingerichteten Pakete ausgeben:
rpm -qa
Anzahl aller eingerichteten Pakete ausgeben:
rpm -qa | wc -l
Liste aller Paketnamen der momentan eingerichteten Pakete abspeichern:
rpm -qa > /backup/installed-software.log
| | Anmerkung: Mit der Liste lässt sich die Paketliste verschiedener Rechner angleichen: $ yum -y install $(cat /backup/installed-software.log) |
Paketnamen nach Einrichtungsdatum ausgeben:
rpm -qa -last
Die ersten 10 eingerichteten Pakete ausgeben:
rpm -qa -last | tail
Die letzten 10 eingerichteten Pakete ausgeben:
rpm -qa -last | head
Pakete eines bestimmten Anbieters zeigen:
Als Beispiel wir hier der Paketanbieter RPM Fusion genutzt.
$ rpm -qa --queryformat '%{Vendor} %{name}-%{version}\n' | grep RPM | sort -k3
Gibt einer Liste alle Paketnamen und Paketversionen aus, die Ausgabe wird durch grep und sort gefiltert. Es werden nur Pakete des Anbieters RPM Fusion ausgegeben und die Ausgabe der Paketnamen ist alphabetisch sortiert.
Die 10 größten Pakete anzeigen:
$ rpm -qa --queryformat '%10{size} %{name}-%{version}\n' | sort -n | tail
Informationen zu einzelnen Paketen abrufen
Informationen über ein installiertes Paket anzeigen lassen:
rpm -qi Paketname
Nach einem Paket suchen:
rpm -qa | grep Paketname
Dateiliste eines installierten Paketes anzeigen:
rpm -ql Paketname
Nachfrage zu welchem Paket eine Datei gehört:
rpm -qf /voller/Pfad/Datei
Nur die Dokumentation eines Paketes anzeigen lassen:
rpm -qld Paketname
Nur die Konfiguratinsdateien Paketes anzeigen lassen:
rpm -qlc Paketname
Den ChangeLog eines Paketes anzeigen lassen:
rpm -q --changelog Paketname
Abfrage wann ein Paket zuletzt installiert/upgedated wurde:
rpm -q --last Paketname
Abhängigkeiten eines Paketes ausgeben:
rpm -q --requires $Paketname
Abhängigkeiten ignorieren
| | Achtung: Die folgenden Optionen sollten nur von erfahrenen Benutzern und nur zu Testzwecken verwendet werden. |
Abhängigkeiten ignorieren
--nodeps
Abhängigkeiten ignorieren, notfalls vorhandene Pakete ersetzen
--force
Datenbankprobleme beheben
Sollte die Abfrage von rpm nicht mehr reagieren, kann versucht werden die Datenbank zu erneuern:
$ rm -f /var/lib/rpm/__* ; rpm -vv --rebuilddb
Interne verwandte Artikel
- In diesem Artikel soll anhand eines praktischen Beispieles gezeigt werden, wie aus einem SRPM ein normales RPM erstellt wird.
- RPMs sollten sicherheitshalber nicht als Root erstellt werden, sondern als User. In diesem Artikel soll kurz gezeigt werden, wie man eine Buildumgebung für normale User einrichtet.
Weblinks

