2007
Der Paket-Manager RPM
Im wesentlichen kann rpm in drei Modi agieren:
installierbare Pakete aus den unangetasteten Quellen (engl. pristine sources herstellen, diese Pakete installieren bzw. auch wieder sauber de-installieren oder updaten sowie Anfragen an die RPM-Datenbank bzw. an einzelne RPM-Archive richten. Im folgenden werden nur die beiden letzten Punkte besprochen. Installierbare RPM-Archive sind in einem speziellen binären Format gepackt; die Archive bestehen aus den zu installierenden (Programm-)Dateien und aus verschiedenen Meta-Informationen, die während der Installation von rpm benutzt werden, um das jeweilige Softwarepaket zu konfigurieren, oder die zu Dokumentationszwecken in der RPM-Datenbank abgelegt werden. RPM-Archive haben die Dateinamen-Endung .rpm.
Pakete verwalten: Installieren, Updaten und De-installieren Im Normalfall ist das Installieren eines RPM-Archivs denkbar einfach:
rpm -i PAKET.rpm
Mit diesem Standardbefehl wird ein Paket aber nur dann installiert, wenn die Abhängigkeiten erfüllt sind und wenn es zu keinen Konflikten kommen kann. rpm fordert per Fehlermeldung die Pakete an, die zum Erfüllen der Abhängigkeiten notwendig sind. Die Datenbank wacht im Hintergrund darüber, daß es zu keinen Konflikten kommen kann: eine Datei darf in der Regel nur zu einem Paket gehören. Mit verschiedenen Optionen kann man sich über diese Regel hinwegsetzen – wer dies tut, der sollte man aber genau wissen, was er tut, da er damit eventuell die Updatefähigkeit aufs Spiel setzt. Interessant ist auch die Option -U bzw. –upgrade, um ein Paket zu aktualisieren. Dadurch wird eine ältere Version des gleichen Pakets gelöscht und dann die neue Version installiert. – Gleichzeitig versucht rpm, sorgfältig mit den Konfigurationsdateien umzugehen, wobei die folgende Strategie verfolgt wird: Falls eine Konfigurationsdatei vom System-Administrator nicht verändert wurde, dann wird von rpm die neue Version der entsprechenden Datei installiert. Es sind keine Eingriffe seitens des Administrator notwendig. Falls eine Konfigurationsdatei vom Administrator zu einem Zeitpunkt vor dem Update geändert wurde, dann wird rpm die geänderte Datei dann und nur dann mit der Erweiterung .rpmorig sichern und die neue Version aus dem RPM-Paket installieren, wenn sich zwischen ursprünglicher Datei und der Datei aus dem Update-Paket etwas geändert hat. In diesem Fall ist es sehr wahrscheinlich, dass Sie die frisch installierte Konfigurationsdatei anhand der Sicherungskopie (.rpmorig) auf Ihre System-Bedingungen hin abstimmen müssen. Danach sollten alle .rpmorig-Dateien unbedingt entfernt werden, um kommenden Updates nicht Hindernis im Wege zu liegen. Nach jeden Update müssen Sie die von rpm angelegten Sicherungskopien mit der Erweiterung .rpmorig kontrollieren; das sind Ihre alten Konfigurationsdateien. Falls erforderlich, übernehmen Sie bitte Ihre Anpassungen aus den .rpmorig-Dateien in die neuen Konfigurationsdateien, und löschen Sie dann die alten Dateien mit der Erweiterung .rpmorig. Wenn ein Paket entfernt werden soll, geht man ähnlich geradlinig vor: rpm -e PAKET rpm wird ein Paket aber nur dann entfernen, wenn keine Abhängigkeiten mehr bestehen; so ist es z. B. nicht möglich, Tcl/Tk zu löschen, solange noch irgendein Programm diese Programme zum Laufen benötigen – auch darüber wacht RPM mithilfe der Datenbank. Falls in einem Ausnahmefall eine derartige Lösch-Operation nicht möglich sein sollte, obwohl keine Abhängigkeiten mehr bestehen, dann kann es hilfreich sein, die RPM-Datenbank mittels der Option –rebuilddb neu aufzubauen; vgl. unten die Anmerkungen zur RPM-Datenbank. Anfragen stellen Mit der Option -q (engl. query) leitet man Anfragen ein. Damit ist es sowohl möglich die RPM-Archive selbst zu durchleuchten (Option -p PAKET_DATEI) als auch die RPM-Datenbank zu befragen. Die Art der Information kann man mit den zusätzlichen Switches auswählen: -i Paket-Informationen anzeigen -l Dateiliste des Pakets anzeigen -f DATEI Anfrage nach Paket, das die Datei DATEI besitzt; DATEI muß mit vollem Pfad angegeben werden! -s Status der Dateien anzeigen (impliziert -l) -d Nur Dokumentationsdateien auflisten (impliziert -l) -c Nur Konfigurationsdateien auflisten (impliziert -l) –dump Alle überprüfbaren Infos zu jeder Datei anzeigen (mit -l, -c oder -d benutzen!) –provides Fähigkeiten des Pakets auflisten –requires, -R Paket-Abhängigkeiten ausgeben –scripts Die diversen (De-)Installations-Skripte ausgeben Der Befehl rpm -q -i rpm z.B. gibt die folgende Information aus: Name : rpm Distribution: SuSE Linux 6.1 (i386) Version : 2.5.5 Vendor: SuSE GmbH, Nuernberg, Germany Release : 20 Build Date: Fri Mar 19 02:04:57 1999 Install date: Sat Mar 20 15:36:00 1999 Build Host: Bareis.suse.de Group : unsorted Source RPM: rpm-2.5.5-20.src.rpm Size : 2111887 License: GPL Packager : feedback@suse.de Summary : rpm – Red Hat Package Manager TIP für Suse Die rpm Datenbank neu aufbauen. Dieser Vorgang sollte nur dann durchgeführt werden, wenn es Probleme mit der rpm Datenbank gibt. Oft ist dies nach mißlungenen Installationversuchen der Fall. Sichern Sie bitte zunächst das Verzeichnis /var/lib/rpm. Rufen Sie nun auf: rpm –rebuilddb Versuchen Sie, den Update-Vorgang fortzusetzen oder – wie beabsichtigt – Pakete mit YaST zu installieren. Hinweis: Sollte die Datenbank gänzlich verloren gegangen sein, können Sie versuchen, die letzte Sicherungskopie von /var/adm/backup/rpmdb zurückzuspielen (DATUM durch den Wert (z. B. 20011012) ersetzen: gunzip < /var/adm/backup/rpmdb/packages.rpm-DATUM.gz \ > /var/lib/rpm/packages.rpm

