Wichtige RPM-Parameter

Installation von RPM-Packages

antje@beta:~/install$ rpm -ihv paketname-1.0.0-i386.rpm
1:paketname     
########################################### [100%]

Dabei bedeuten die Parameter im einzelnen:
-i installiert ein Paket
-h zeigt Fortschrittsanzeige
-v beschreibt, was rpm gerade macht

Upgrade RPM-Packages

antje@beta:~/install$ rpm -Uhv paketname-1.0.0-i386.rpm
1:paketname     
########################################### [100%]

Dabei bedeutet
-U installiert bzw. aktualisiert ein Paket

Auffrischen eines RPM-Packages

antje@beta:~/install$ rpm -Fhv paketname-1.0.0-i386.rpm
1:paketname     
########################################### [100%]

Deinstallieren eines RPM-Packages

antje@beta:~/install$ rpm -e paketname

Mögliche Fehlermeldungen beim Installieren, Upgraden oder Deinstallieren

  1. Paket bereits installiert

    antje@beta:~/install$ rpm -ihv paketname-1.0.0-i386.rpm
    paketname      package paketname-1.0.0 is already installed

    Mit --replacepkgs kann man anweisen, das das RPM doch aktualisiert wird.
    Beispiel:

    antje@beta:~/install$ rpm -ihv --replacepkgs paketname-1.0.0-i386.rpm
    1:paketname     
    ########################################### [100%]

  2. Konflikte mit installierten Paketen

    antje@beta:~/install$ rpm -ihv paketname-1.0.0-i386.rpm
    paketname      /usr/lib/beispiel.so conflicts with file from anderes-paket-0.9-1

    Mit --replacefiles kann man diesen Fehler ignorieren.

    antje@beta:~/install$ rpm -ihv --replacefiles paketname-1.0.0-i386.rpm
    1:paketname     
    ########################################### [100%]

  3. Ungelöste Abhängigkeiten

    antje@beta:~/install$ rpm -ihv paketname-1.0.0-i386.rpm
    failed dependencies:
           anderes-package is needed by paketname-1.0.0

    Wenn man sich absolut sicher ist, das man das Paket schon installiert hat (zum Beispiel aus den Sourcen kompiliert), kann man diese Meldung mit --nodeps unterdrücken

    antje@beta:~/install$ rpm -ihv --nodeps paketname-1.0.0-i386.rpm
    1:paketname     
    ########################################### [100%]

  4. Bestehende Abhängigkeiten beim Deinstallieren

    antje@beta:~/install$ rpm -e paketname
    removing these packages would break dependencies:
            paketname is needed by anderes-package-1.0.0

    Das sollte man ernst nehmen und das Deinstallieren sein lassen. Mit --nodeps bekommt man es trotzdem deinstalliert.

    antje@beta:~/install$ rpm -e --nodeps paketname

  5. Neueres Package ist schon installiert

    antje@beta:~/install$ rpm -Uhv paketname-1.0.0-i386.rpm
    paketname package paketname-2.0-1 (which is newer) is already installed

    Wenn man trotzdem das ältere Package installieren möchte, kann man --oldpackage benutzen.

    antje@beta:~/install$ rpm -Uhv --oldpackage paketname-1.0.0-i386.rpm
    1:paketname     
    ########################################### [100%]

Informationen über RPM-Packages erhalten

rpm -qpi paket-version.rpm zeigt Beschreibung des Software-Pakets an
rpm -qpl paket-version.rpm listet Dateien im Package auf
rpm -qa | less listet alle installierten Pakete auf (mit ? ist Suche nach Stichwörtern möglich)
rpm -qi paketname liefert Informationen zum Package
rpm -ql paketname listet Namen und Pfad der installierten Dateien auf
rpm -qf /usr/lib/library.so zeigt, zu welchem Package eine Datei gehört
rpm -qdf /usr/bin/programm zeigt, wo sich die Dokumentation zu diesem Programm befindet.
rpm -Va System prüfen

Source Packages (SRPM) installieren

Um unter Redhat 7.1 Source-Packages installieren zu können, muß auch das rpm-build Package installiert sein. Wenn das fehlt, kommt leider keine Fehlermeldung, sondern es wird immer wieder der Hilfebildschirm angezeigt (sehr verwirrend!).

Es gibt mindestens zwei Möglichkeiten aus dem SRPM- ein RPM-Package zu machen:

  1. antje@beta:~/install$ rpm -ihv package.srpm
    1:package     ########################################### [100%]

    Dann liegt unter /usr/src/redhat/SOURCE der gepackte Quellcode und unter /usr/src/redhat/SPEC das Spezificationsfile (package.spec). Möchte man vor dem kompilieren noch Kompilier-Optionen einfügen, kann man das in dem spec-File machen.

    Im Verzeichnis /usr/src/redhat/SPEC gibt man folgendes ein:

    antje@beta:~/install$ rpm -bb package.spec

    und das Programm wird kompiliert. Als Ergebnis hat man dann ein RPM, das im Verzeichnis /usr/src/redhat/i386 liegt und das man dann normal installieren kann.

  2. Möchte man keine Änderungen am spec-File vornehmen, kann man folgendes machen:

    antje@beta:~/install$ rpm --rebuild package.srpm

    Dabei wird das Package ausgepackt, kompiliert, das RPM-Package nach /usr/src/redhat/i386 kopiert und sämtliche Überreste in den Verzeichnissen /usr/src/redhat/SOURCE, /usr/src/redhat/SPEC und /usr/src/redhat/BUILD gelöscht.