Verwenden von RPM vom Shell Prompt aus

Sie können die RPM-Technologie auch mit einer Reihe von Befehlen vom Shell Prompt aus nutzen. Dabei stehen Ihnen natürlich einerseits alle Funktionen zur Verfügung, die Sie mit Gnome-RPM nutzen können, andererseits bietet Ihnen das Arbeiten vom Shell Prompt aus noch weitere Möglichkeiten wie das Auffrischen von Paketen (eine Funktion, die dem Aktualisieren ähnelt, siehe Abschnitt namens Auffrischen für weitere Informationen).

Noch detailliertere Informationen über RPM finden Sie in den entsprechenden Kapiteln im Offiziellen Red Hat Linux Referenzhandbuch auf der Dokumentations-CD. Sie können auch die zugehörige man-Seite durch Eingabe von man rpm anzeigen oder die Hilfedatei mit dem Befehl rpm --help aufrufen.

Installieren

RPM-Pakete besitzen normalerweise Dateinamen wie foo-1.0-1.i386.rpm, die den Paketnamen (foo), die Version (1.0), die Release-Nummer (1) und die unterstützte Systemarchitektur (i386) enthalten. Für das Installieren eines Pakets müssen Sie lediglich folgenden Befehl eingeben:

# rpm -ivh foo-1.0-1.i386.rpm
foo                       ####################################
#
	    

RPM gibt den Paketnamen (der nicht unbedingt mit dem Dateinamen übereinstimmen muss) und eine Reihe von Gatterzeichen auf dem Bildschirm aus, um den Installationsfortschritt anzuzeigen.

Pakete können prinzipiell auch mit der Funktion zum Aktualisieren installiert werden. Weitere Informationen finden Sie unter Abschnitt namens Aktualisieren.

Wenn beim Installieren Fehler auftreten, wird die entsprechende Fehlermeldung auf dem Bildschirm angezeigt. Beispielsweise kann es zu Fehlern kommen, weil ein bestimmtes Paket bereits installiert wurde oder Probleme mit Paketabhängigkeiten die Installation eines Pakets unmöglich machen.

Im Folgenden erhalten Sie Informationen über die möglicherweise auftretenden Fehlertypen:

Paket bereits installiert

Falls das Paket bereits installiert wurde, sehen Sie folgende Anzeige:

# rpm -ivh foo-1.0-1.i386.rpm
foo                     package foo-1.0-1 is already installed
error: foo-1.0-1.i386.rpm cannot be installed
#
	    

Wenn Sie das Paket dennoch installieren möchten, können Sie die Option --replacepkgs an der Befehlszeile verwenden, mit der RPM angewiesen wird, den Fehler zu ignorieren.

# rpm -ivh --replacepkgs foo-1.0-1.i386.rpm
foo                       ####################################
#
	    

Dateikonflikte

Wenn Sie versuchen, ein Paket zu installieren, das eine bereits durch ein anderes Paket installierte Datei enthält, wird folgende Meldung ausgegeben:

# rpm -ivh foo-1.0-1.i386.rpm
foo           /usr/bin/foo conflicts with file from bar-1.0-1
error: foo-1.0-1.i386.rpm cannot be installed
#
	      

Wenn RPM diesen Fehler ignorieren soll, hängen Sie die Option --replacefiles an den Befehl an:

# rpm -ivh --replacefiles foo-1.0-1.i386.rpm
foo                       ####################################
#
	      

Ungelöste Abhängigkeiten

RPM-Pakete können von anderen Paketen "abhängig" sein, d.h. sie benötigen andere Pakete, um ordnungsgemäß installiert werden zu können. Falls Sie versuchen, ein Paket zu installieren, für das eine solche ungelöste Abhängigkeit besteht, sehen Sie folgende Anzeige:

# rpm -ivh bar-1.0-1.i386.rpm
failed dependencies:
        foo is needed by bar-1.0-1
#
	  

Um diesen Fehler zu beheben, müssen Sie die angeforderten Pakete installieren. Falls Sie dennoch mit der Installation fortfahren möchten (was nicht zu empfehlen ist, da das Paket vermutlich nicht korrekt ausgeführt werden kann), geben Sie an der Befehlszeile --nodeps ein.

Deinstallieren

Das Deinstallieren von Paketen ist ebenso einfach wie das Installieren:

# rpm -e foo
#
	    

Beachten Sie, dass wir hier den Paketnamen foo und nicht den Namen der ursprünglichen Paketdatei " foo-1.0-1.i386.rpm" verwendet haben.

Beim Deinstallieren eines Pakets kann ein Abhängigkeitsfehler auftreten, wenn ein anderes installiertes Paket von diesem Paket abhängt. Beispiel:

# rpm -e foo
removing these packages would break dependencies:
        foo is needed by bar-1.0-1
#
	    

Wenn Sie möchten, dass RPM diesen Fehler ignoriert und das Paket dennoch installiert (was ebenfalls keine gute Idee ist, da das hiervon abhängige Paket vermutlich nicht richtig funktionieren wird), hängen Sie die Option --nodeps an den Befehl an.

Aktualisieren

Das Aktualisieren von Paketen erfolgt ähnlich wie das Installieren.

# rpm -Uvh foo-2.0-1.i386.rpm
foo                       ####################################
#
	    

Beim Aktualisieren deinstalliert RPM automatisch alte Versionen des Pakets foo.

Sie können die Funktion zum Aktualisieren auch zum Installieren von Paketen verwenden, da das Aktualisieren auch dann problemlos funktioniert, wenn keine älteren Versionen des zu installierenden Pakets vorhanden sind.

Da RPM ein intelligentes Aktualisieren von Paketen mit Konfigurationsdateien durchführen kann, wird möglicherweise folgende Meldung angezeigt:

Fehler bei der Installation älterer Packete

# rpm -Uvh foo-1.0-1.i386.rpm
foo    package foo-2.0-1 (which is newer) is already installed
error: foo-1.0-1.i386.rpm cannot be installed
#
	    

Um mit RPM dennoch eine "Aktualisierung" durchzuführen, hängen Sie die Option --oldpackage an den Befehl an:

# rpm -Uvh --oldpackage foo-1.0-1.i386.rpm
foo                       ####################################
#
	    

Auffrischen

Das Auffrischen eines Pakets ist ein ähnlicher Vorgang wie das Aktualisieren.

# rpm -Fvh foo-1.2-1.i386.rpm
foo                       ####################################
#
	    

Die Option Auffrischen von RPM überprüft die Versionen der in der Befehlszeile angegebenen Pakete und vergleicht sie mit den Versionen der bereits in Ihrem System installierten Pakete. Wenn eine neuere Version eines bereits installierten Pakets von der Option Auffrischen verarbeitet wird, aktualisiert RPM dieses auf die neuere Version. Mit der Option Auffrischen von RPM kann jedoch kein Paket installiert werden, wenn nicht ein bereits zuvor installiertes Paket des gleichen Namens vorhanden ist. Dies ist ein wesentlicher Unterschied zur Funktion zum Aktualisieren von RPM, da bei einer Aktualisierung in jedem Fall Pakete installiert werden, gleichgültig, ob eine ältere Version des Pakets bereits installiert wurde.

Anfragen

Anfragen an die Datenbank zu installierten Paketen werden mit rpm -q durchgeführt. Ein einfaches Anwendungsbeispiel ist rpm -q foo. Dieser Befehl gibt den Namen, die Versions- und die Release-Nummer des installierten Pakets foo aus:

# rpm -q foo
foo-2.0-1
#
	    

Statt einen Paketnamen festzulegen, können Sie auch die folgenden Optionen mit -q verwenden, um anzugeben, welche Pakete Sie abfragen möchten. Diese Optionen heißen Paketspezifizierungsoptionen.

Es gibt eine Reihe von Möglichkeiten, um festzulegen, welche Informationen über angefragte Pakete angezeigt werden. Mit den folgenden Optionen können Sie die gewünschten Informationen auswählen. Diese Optionen heißen Informationsauswahloptionen.

Zu den Optionen für die Anzeige von Dateilisten können Sie an der Befehlszeile -v hinzufügen, um die Listen im gleichen Format wie bei der Option ls -l anzuzeigen.

Prüfen

Beim Überprüfen eines Pakets werden die Angaben zu Dateien, die aus einem Paket installiert wurden, mit den Angaben aus dem ursprünglichen Paket verglichen. Bei einer Überprüfung werden u.a. folgende Parameter verglichen: Größe, MD5-Summe, Berechtigungen, Typ, Eigentümer und Gruppe.

Mit dem Befehl rpm -V werden Pakete überprüft. Zum Angeben der zu verifizierenden Pakete können Sie alle Paketauswahloptionen verwenden, die für Anfragen zur Verfügung stehen. Ein einfaches Anwendungsbeispiel ist rpm -V foo. Dieser Befehl überprüft, ob sich alle Dateien im Paket foo noch in dem Zustand befinden, den sie ursprünglich zum Zeitpunkt der Installation hatten. Beispiel:

Wenn alles überprüft und für korrekt befunden wurde, erfolgt keine weitere Ausgabe. Falls Abweichungen festgestellt wurden, werden diese angezeigt. Das Ausgabeformat besteht aus einer Zeichenkette mit acht Zeichen. Konfigurationsdateien werden durch ein "c" gekennzeichnet, anschließend folgt der Dateiname. Jedes der acht Zeichen steht für das Vergleichsergebnis eines Attributs der Datei mit dem aufgezeichneten Wert für dieses Attribut in der RPM -Datenbank. Ein einzelner Punkt (".") bedeutet, dass der Test bestanden wurde. Die folgenden Zeichen kennzeichnen Fehler bei bestimmten Tests:

Wenn eine Ausgabe angezeigt wird, entscheiden Sie, ob Sie das Paketu entfernen oder neu installieren oder das Problem auf andere Weise lösen sollten.