- RPM Red Hat Package Manager
- Fast alle Distributionen, die nicht auf Debian basieren arbeiten mit dem RPM
- Installation von kompilierten Programmen im Binärformat, allerdings ohne Auflösung von Abhängigkeiten
- Auflösung der Abhängigkeiten, Beschaffung notwendiger Pakete und Installation derselbigen übernehmen Frontends, wie z.B. YUM
- Dateiname Pakete Aufbau: bash-3.0-15.i586.rpm
- bash Name des Pakets
- 3.0 Versionsnummer des Pakets
- 15 Revisionsnummer
- i586 unterstütze Architektur
Konfigurationsdateien
- Hauptkonfigurationsdatei von RPM ist rpmrc, die sich in verschiedenen Verzeichnissen befinden kann
- /etc/rpmrc enthält systemweite Konfiguration, die auch erhalten bleibt, wenn RPM aktualisiert wird. Diese Datei ist normalerweise nicht vorhanden und muss bei Bedarf erzeugt werden
- /usr/lib/rpm/rpmrc systemweite Konfiguration, die mit der Aktualisierung von RPM überschrieben wird
- /usr/lib/rpmrc veralteter Speicherort, der /usr/lib/rpm/rpmrc entspricht
- .rpmrc im Benutzerverzeichnis definiert Einstellungen, die nur für einen bestimmten Benutzer gelten sollen
- Prüfungsrelevant ist nur das Wissen, dass diese Dateien existieren. Veränderungen an diesen Dateien werden nur vorgenommen, wenn man selbst Pakete erzeugt
- /usr/lib/rpm Verzeichnis enthält Skripte, die RPM für das Paketmanagement verwendet
- /var/lib/rpm Datenbanken mit installierten Komponenten, Abhängigkeiten, Konflikten und anderen Informationen, nicht Prüfungsrelevant
Verwendung von RPM selbst
- Prüfungsrelevant ist nur das Kommando rpm selbst, darüber hinaus gibt es jedoch weitere RPM-Programme, wie z.B. rpmbuild, rpmverify, rpmquery, rpmheader, rpmarchive
- rpm -i bzw. --install Installiert das angegebene Paket
- rpm -U bzw. --upgrade aktualisiert das Paket, bzw. installiert es einfach, wenn keine Vorgängerversion gefunden wurde
- für diese beiden Modi gibt es weitere Parameter:
- -h bzw. --hash Fortschrittsanzeige mit 50 Hash (#)-Zeichen
- Zwangsinstallation von Paketen möglich, wenn z.B. Abhängigkeiten nicht erfüllt sind, oder Konflikte mit bestehenden Paketen bestehen. Nur anwenden, wenn man weiß, was man tut ;-) daher gibt es keine Buchstabenausführung
- --force Installation bei bestehenden Konflikten
- --nodeps lässt die Prüfung von Abhängigkeiten bei der Installation aus
- -v bzw. --verbose Verbose-Mode
- --test testet und nimmt keine Änderungen am System vor
- rpm -e bzw. --erase (früher --uninstall) entfernt das Paket
- --nodeps lässt die Prüfung von Abhängigkeiten bei der Deinstallation aus
- rpm -V <Paket> Überprüfung (-verify) eines installierten Pakets, ob die dazu gehörenden Dateien gelöscht oder modifiziert wurden
- --nofiles keine Warnung bei fehlenden Dateien ausgeben
- --nomd5 keine Warnung bei md5-Pfrüfsummenfehler ausgeben
- --nopgp keine Warnung bei PGP-Signaturfehler ausgeben
- ausgegeben Informationen sind folgendermaßen definiert:
- S (Size) Größe weicht vom Original ab
- M (Mode) Berechtigung auf die Datei wurde geändert
- 5 (MD5) die Checksumme ist abweichend
- D (Device) Fehler in Gerätenummer
- L (Link) Fehler im Pfad des Softlinks
- U (User) Besitzer der Datei wurde geändert
- G (Group) Besitzergruppe der Datei wurde geändert
- T (Time) Änderungszeit der Datei wurde geändert
- Fehlercodes sind nicht prüfungsrelevant, nur die Kenntnis darüber, dass eine Überprüfung ausgeführt werden kann
- rpm -F bzw. --freshen aktualisiert Pakete nur, wenn sie tatsächlich schon vorhanden sind
- rpm -q <Paket> Abfrage auf RPM-Datenbank dient ohne weitere Optionen dazu, heraus zu finden, ob das Paket installiert ist
- zusätzliche Parameter können sein:
- - a bzw. --all listet alle auf dem System installierte Pakete auf (Filterung mit Hilfe grep möglich). Bietet sich auch an, wenn man sich nicht sicher ist, wie ein bestimmtes Paket genau heißt
- -f <datei> bzw. --file <datei> listet das Paket auf, was zu einer bestimmten Datei gehört
- -p <paketname> durchsucht ein definiertes Paket, welches nicht installierte ist. Um zu spezifizieren, welche Informationen man ausgegeben haben möchte, stehen folgende Optionen zur Verfügung:
- -c bzw. --configfiles nur Config-Daten
- -d bzw. --docfiles nur Dateien der Dokumentation
- -l bzw. --list Liste der im Paket enthaltenen Dateien
- -R bzw. --requires Abhängigkeiten zu anderen Paketen
- -i bzw. --info umfangreiche Informationen zu einem Paket
- -i (ohne q davor) = Installation -qi = Abfrage
- Beispiel: rpm -Uhv /i586/fortune-1.0-860.i586.rpm (Installation des Pakets fortune mit Fortschrittsanzeige)
- Pakete umwandeln um einzelne Dateien zu extrahieren: rpm2cpio; cpio (copy in and out) ist ein Programm zur Bearbeitung von Archiven
- Umwandlung des rpm-Pakets in ein cpio-Paket und dann die gewünschte Datei extrahieren
- rpm2cpio kommt ohne Optionen ausrpm2cpio samba-3.3.2-0.33.rpm > samba.cpio
- Umwandlung und Extraktion ist in einem Schritt möglich
rpm2cpio samba-3.3.2 -0.33.rpm |cpio -ivd usr/share/man/man7/samba.7 (Installation der reinen Manpage auf dem System)
yum und der yumdownloader
- "Frontend" (ähnlich apt-get) für RPM-Pakete
- /etc/yum.conf Hauptkonfigurationsdatei; Festlegung u.a. des Cache-Verzeichnisses
- /var/cache/yum Standard Cache-Verzeichnis
- /etc/yum.repos.d Verzeichnis, welches Dateien enthält, die die URLs zu den RPM-Paketen enthalten
- yum search Paket Suche nach einem bestimmten Programm; Ausgabe ist recht umfangreich und detailiert. U.a. wird auch das zur Installation benötigte Paket genannt
- yum install Paket Download und Installation des Pakets
- yum remove Paket Entfernen des Programms (incl. Konfigurationsdateien?)
- yum list updates Auflistung der zu aktualisierenden Pakete (auch als nicht root ausführbar)
- yum update Aktualisierung der installierten Pakete (im Unterschied zu apt-get update, wo die Repositories aktualisiert werden)
- yum update kernel Aktualisierung des Kernels
- yumdownloader ist ein reines Hilfsmittel, um die RPM-Pakete aus dem Internet herunter zu laden
- --destdir Angabe eines Zielverzeichnisses. Ansonsten wird das aktuelle Verzeichnis verwendet
- --urls Anzeige der URL-Quelle, kein Download
- --resolve Auflösen von Abhängigkeiten und download der zusätzlich benötigten Pakete
- --source download der Programmquelle anstatt der Binärdatei
Paketmanagment ist unbedingt Prüfungsrelevant
