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 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. Sie können
auch die zugehörige man-Seite durch Eingabe von
man rpm anzeigen oder die Hilfedatei mit dem
Befehl rpm --help aufrufen.
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 muß)
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:
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 ####################################
#
|
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 ####################################
#
|
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.
Das Deinstallieren von Paketen ist ebenso einfach wie das
Installieren:
Beachten Sie, daß 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, daß
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.
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:
# 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 ####################################
#
|
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 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:
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.
-a Anfrage zu sämtlichen aktuell
installierten Paketen.
-f
<file>
Anfrage zum Paket, zu dem
<Datei>
gehört.
-p
<Paketdatei>
Anfrage zum Paket
<Paketdatei>.
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.
-i zeigt Paketinformationen an, z.B.
Name, Beschreibung, Release-Nummer, Größe,
Erstellungsdatum, Installationsdatum, Händler und
verschiedene andere Informationen.
-l zeigt eine Liste der Dateien an,
die im Paket enthalten sind.
-s zeigt den Status sämtlicher
Dateien des Pakets an.
-d zeigt eine Liste der als
Dokumentationen gekennzeichneten Dateien an (man-Seiten,
Infoseiten, README-Dateien usw.).
-c zeigt eine Liste der als
Konfigurationsdateien gekennzeichneten Dateien an. Dies
sind die Dateien, die Sie nach der Installation
bearbeiten, um das Paket an Ihr System anzupassen (
sendmail.cf,
passwd,
inittab usw.).
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.
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:
So verifizieren Sie ein Paket, das eine bestimmte Datei
enthält:
So verifizieren Sie ALLE installierten Pakete:
So verifizieren Sie ein installiertes Paket mit Hilfe
einer RPM-Paketdatei:
rpm -Vp
foo-1.0-1.i386.rpm |
Dies kann nützlich sein, wenn Sie vermuten,
daß Ihre RPM-Datenbank
beschädigt ist.
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, daß der Test bestanden wurde.
Die folgenden Zeichen kennzeichnen Fehler bei bestimmten
Tests:
5 - MD5-Prüfsumme
S - Dateigröße
L - Symbolische Verknüpfung
T - Dateibearbeitungszeit
D - Gerät
U - Benutzer
G - Gruppe
M -- Modus
(einschließlich Berechtigungen und Dateityp)
Wenn eine Ausgabe angezeigt wird, entscheiden Sie, ob Sie das
Paket entfernen oder neu installieren oder das Problem auf
andere Weise lösen sollten.