RPM (Redhat Package Manager) ist der am weitesten verbreitete PaketManager - siehe auch apt/RPM.

Homepage: http://www.rpm.org/

Lizenz: GPL

FrontEnds

mit Auflösen von Abhängigkeiten

simple GUIs für RPM

ähnliche Software-Projekte

Tips & Tricks

ce, 20031102

Achtung bei "fremden" RPM-Paketen

/!\ Obwohl viele Distributionen das RPM-Format benutzen, heißt das NICHT, dass man z.B. problemlos ein RPM von RedHat auf einem SuSE-System installieren kann. Die Distributionen unterscheiden sich oft in kleinen Einzelheiten, die Dir aber das System ziemlich kaputtkriegen können, wenn Du hier das falsche Paket zwanghaft installierst. Besonders gilt das für irgendwelche Bibliotheken.

Bei der normalen Installation (ohne Zwang, d.h. kein -nodeps oder gar --force) kann normalerweise nichts schiefgehen, denn genau deswegen gibt es die PaketAbhängigkeiten.

Fazit: SuSE RPM Pakete nur auf einem SuSE System installieren, etc.

Pakete hängen von den Versionen der Bibliotheken ab, unter denen sie kompiliert wurden. Wenn man also Probleme bekommt, weil ein Paket neuere (evtl. auch bei älteren) Bibliotheken benötigt, kann es helfen, das Paket selbst zu kompilieren.

Updaten mit einem (1) Kommando

Wenn man sein System komplett updaten will, sollte man sich eines der oben genannten Frontends bedienen. Falls man die Pakete schon heruntergeladen hat (oder z.B. auf CD erhalten) bietet sich der Einsatz von yum an, da das Erstellen von sog. Repositories damit besonders einfach ist.

Die manuelle Vorgehensweise wird im Folgenden beschrieben.

Wenn man sich die kompletten Updates / Security-Fixes seiner RPM-basierten Distribution runtergeladen hat, dann aber nur die für die bereits installierten Pakete einspielen will, kann man das folgende Kommando gut gebrauchen - vorher sollte man aber Kernel-RPMs in ein anderes Verzeichnis verschieben, siehe auch Hinweis weiter unter zu Kernel und glibc-Updates):

rpm -Fvh *.rpm  # Auffrischen der Installation mit allen RPMs im aktuellen Verzeichnis

Falls es Probleme gibt, kann man nach reiflicher Überlegung auch noch ggf. --nodeps und --force hinzufügen.

/!\ es ist manchmal wichtig, wirklich ALLE Updates mit *.rpm auf einen Schlag zu erfassen. Ansonsten kann es leicht passieren, dass Abhängigkeiten fehlschlagen oder das System nachher nicht richtig funktioniert, falls man dies per --nodeps ignorieren hat lassen. Vor allem bei Bibliotheken (libs) oder anderen grundlegenden Dingen kann das leicht passieren.

Vorsicht bei glibc-Updates

Ein glibc-Update ist ein tiefgreifender Eingriff in ein Linux-System, denn fast alle Linux-Programme sind dynamisch gegen die glibc gelinkt. Dies hat zur Konsequenz, dass nach Einspielen einer nicht funktionierenden glibc praktisch nichts mehr funktioniert.

Daher folgende Ratschläge aus eigener praktischer Erfahrung:

Falls es trotzdem schiefgeht (selten, kommt aber vor):

Kernel-Updates

Kernel-Updates immer mit rpm -ivh ... einspielen, denn bei -U wird ja der alte Kernel entfernt - dies will man aber erst, nachdem man den neuen ausgiebig getestet hat!

Anpassen / kontrollieren der LILO/GRUB-Konfiguration nicht vergessen.

Bei Verwendung von lilo unbedingt auch den LILO-Map-Installer laufen lassen: lilo -v und auf Fehlermeldungen achten.

Mini-Howto

Installieren/Deinstallieren/Updaten

Installation von RPMs

rpm -ivh paket.rpm

Installation von RPMs u. ignoriert dabei Datei-Konflikte, d. h. überschreibt Dateien ( z. B. Bibliotheken) die bereits durch andere Pakete installiert wurden (bitte mit Vorsicht anwenden).

rpm -ivh --replacefiles paket.rpm

Installation von RPMs trotz nicht erfüllter Abhängigkeiten (nicht zu empfehlen)

rpm -ivh --nodeps paket.rpm

Upgrade von Paketen (wenn das Paket noch nicht installiert ist, wird es neu installiert)

rpm -Uvh paket.rpm

Auffrischen von Paketen (nur bereits installierte Pakete updaten)

rpm -Fvh paket.rpm

Deinstallation von Paketen

rpm -e paket

Deinstallation von Paketen trotz bestehender Abhängigkeiten (nicht zu empfehlen)

rpm -e --nodeps paket

Tipp: Ohne die Optionen -vh gibt RPM keinen Mucks von sich, solange kein Fehler auftritt.

Abfragen

Was ist alles installiert?

rpm -qa (wenn man was bestimmtes sucht, einfach noch ein | grep suchbegriff dahinter)

Zu welchem Paket gehört eine Datei?

rpm -qf <pfad/zur/datei>

Paketbeschreibung eines installierten Paketes anzeigen

rpm -qi paket

Pakete überprüfen

System auf Veränderungen gegenüber der RPM-Datenbank prüfen

rpm -Va

Signatur von RPM-Dateien prüfen

rpm --check-sig paket.rpm

RPMs aus src.rpms selber bauen

siehe /BuildAlsUser

Fragen & Antworten

Wie kann ich ein RPM relativ zu einem Verzeichnis entpacken? Also ich will nicht mein "/" als Basisverzeichnis haben, sondern ein von mir definiertes! -- JanRoehrich 2002-09-22 00:52:21

Und wie packe ich src.rpms aus? -- JanRoehrich 2002-09-22 01:47:21rpm

Wenn man die Pakete nicht installieren will, sondern wirklich nur entpacken, dann hilft rpm2cpio oder das Programm unp. In letzterem Falle reicht die Eingabe von unp paketname.rpm.


##%define foo bar

War auf SuSE 7.0 mit dem dortigen RPM (hab' grad kein System zur Hand zum Nachschauen der exakten Version). Könnte mal jeamand versuchen, das (ggf. mit aktuellerem RPM) nachzuvollziehen? -- JürgenHermann 2002-11-29 07:55:09


RPM (zuletzt geändert am 2009-08-08 20:00:01 durch i577B6D5B)