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
-
Paket bereits installiert
antje@beta:~/install$ rpm -ihv paketname-1.0.0-i386.rpm
paketname package paketname-1.0.0 is already installedMit
--replacepkgskann man anweisen, das das RPM doch aktualisiert wird.
Beispiel:antje@beta:~/install$ rpm -ihv --replacepkgs paketname-1.0.0-i386.rpm
1:paketname########################################### [100%] -
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-1Mit
--replacefileskann man diesen Fehler ignorieren.antje@beta:~/install$ rpm -ihv --replacefiles paketname-1.0.0-i386.rpm
1:paketname########################################### [100%] -
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.0Wenn man sich absolut sicher ist, das man das Paket schon installiert hat (zum Beispiel aus den Sourcen kompiliert), kann man diese Meldung mit
--nodepsunterdrückenantje@beta:~/install$ rpm -ihv --nodeps paketname-1.0.0-i386.rpm
1:paketname########################################### [100%] -
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.0Das sollte man ernst nehmen und das Deinstallieren sein lassen. Mit
--nodepsbekommt man es trotzdem deinstalliert.antje@beta:~/install$ rpm -e --nodeps paketname -
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 installedWenn 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:
-
antje@beta:~/install$rpm -ihv package.srpm
1:package ########################################### [100%]Dann liegt unter
/usr/src/redhat/SOURCEder gepackte Quellcode und unter/usr/src/redhat/SPECdas 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/SPECgibt man folgendes ein:antje@beta:~/install$ rpm -bb package.specund das Programm wird kompiliert. Als Ergebnis hat man dann ein RPM, das im Verzeichnis
/usr/src/redhat/i386liegt und das man dann normal installieren kann. -
Möchte man keine Änderungen am spec-File vornehmen, kann man folgendes machen:
antje@beta:~/install$ rpm --rebuild package.srpmDabei wird das Package ausgepackt, kompiliert, das RPM-Package nach
/usr/src/redhat/i386kopiert und sämtliche Überreste in den Verzeichnissen/usr/src/redhat/SOURCE, /usr/src/redhat/SPECund/usr/src/redhat/BUILDgelöscht.