Übersicht
Stichwortsuche
History
Versionen
Kategorien
Alle Artikel
English
SuSE Linux: Versionen ab 5.0
Mit der Version 5.0 hat »rpm
« (engl. Red Hat Package Manager)
Einzug in die S.u.S.E. Linux Distribution gehalten. Damit vereinfacht sich das
Paket-Management für alle Beteiligten, die Benutzer, die System-Administratoren
und - nicht zuletzt - für die Pakete-Macher. Mittels der mächtigen
RPM-Datenbank stehen jederzeit detaillierte Informationen zur installierten
Software zur Verfügung.
Im wesentlichen kann rpm
in drei Modi agieren: installierbare
Pakete aus den unangetasteten Quellen (engl. pristine sources
herstellen, diese Pakete installieren bzw. auch wieder sauber de-installieren
oder updaten sowie Anfragen an die RPM-Datenbank bzw. an einzelne RPM-Archive
richten. Im folgenden werden nur die beiden letzten Punkte
besprochen.
Installierbare RPM-Archive sind in einem speziellen binären Format gepackt; die
Archive bestehen aus den zu installierenden (Programm-)Dateien und aus
verschiedenen Meta-Informationen, die während der Installation von rpm
benutzt werden, um das jeweilige Softwarepaket zu konfigurieren, oder die zu
Dokumentationszwecken in der RPM-Datenbank abgelegt werden. RPM-Archive haben
die Dateinamen-Endung .rpm
.
Im Normalfall ist das Installieren eines RPM-Archivs denkbar einfach:
rpm -i PAKET.rpm
Mit diesem Standardbefehl wird ein Paket aber nur dann installiert, wenn die
"Abhängigkeiten" erfüllt sind und wenn es zu keinen "Konflikten" kommen
kann. rpm
fordert per Fehlermeldung die Pakete an, die zum Erfüllen
der Abhängigkeiten notwendig sind. Die Datenbank wacht im Hintergrund darüber,
daß es zu keinen Konflikten kommen kann: eine Datei darf in der Regel nur zu
einem Paket gehören. Mit verschiedenen Optionen kann man sich über diese Regel
hinwegsetzen - wer dies tut, der sollte man aber genau wissen, was er tut, da
er damit eventuell die Updatefähigkeit aufs Spiel setzt.
Interessant ist auch die Option -U
bzw. --upgrade
, um
ein Paket zu aktualisieren. Dadurch wird eine ältere Version des gleichen
Pakets gelöscht und dann die neue Version installiert. - Gleichzeitig versucht
rpm
, sorgfältig mit den Konfigurationsdateien umzugehen,
wobei die folgende Strategie verfolgt wird:
rpm
die neue Version der
entsprechenden Datei installiert. Es sind keine Eingriffe seitens des
Administrator notwendig.
rpm
die geänderte Datei dann
und nur dann mit der Erweiterung .rpmorig
sichern und die neue
Version aus dem RPM-Paket installieren, wenn sich zwischen ursprünglicher Datei
und der Datei aus dem Update-Paket etwas geändert hat. In diesem Fall ist es
sehr wahrscheinlich, dass Sie die frisch installierte Konfigurationsdatei
anhand der Sicherungskopie (.rpmorig
) auf Ihre System-Bedingungen
hin abstimmen müssen. Danach sollten alle .rpmorig
-Dateien
unbedingt entfernt werden, um kommenden Updates nicht Hindernis im Wege zu
liegen.
Nach jeden Update müssen Sie die von rpm
angelegten
Sicherungskopien mit der Erweiterung .rpmorig
kontrollieren; das
sind Ihre alten Konfigurationsdateien. Falls erforderlich, übernehmen Sie
bitte Ihre Anpassungen aus den .rpmorig
-Dateien in die neuen
Konfigurationsdateien, und löschen Sie dann die alten Dateien mit der
Erweiterung .rpmorig
.
Wenn ein Paket entfernt werden soll, geht man ähnlich geradlinig vor:
rpm -e PAKET
rpm
wird ein Paket aber nur dann entfernen, wenn keine
Abhängigkeiten mehr bestehen; so ist es z. B. nicht möglich, Tcl/Tk zu löschen,
solange noch irgendein Programm diese Programme zum Laufen benötigen - auch
darüber wacht RPM mithilfe der Datenbank.
Falls in einem Ausnahmefall eine derartige Lösch-Operation nicht möglich sein
sollte, obwohl keine Abhängigkeiten mehr bestehen, dann kann es
hilfreich sein, die RPM-Datenbank mittels der Option --rebuilddb
neu aufzubauen; vgl. unten die Anmerkungen zur RPM-Datenbank.
Mit der Option -q
(engl. query) leitet man Anfragen ein.
Damit ist es sowohl möglich die RPM-Archive selbst zu durchleuchten (Option
-p PAKET_DATEI
) als auch die RPM-Datenbank zu befragen. Die Art
der Information kann man mit den zusätzlichen Switches auswählen:
-i
-l
-f DATEI+
DATEI
besitzt;
DATEI
muß mit vollem Pfad angegeben werden!
-s
-l
)
-d
-l
)
-c
-l
)
--dump
-l
,
-c
oder -d
benutzen!)
--provides
--requires
, -R
--scripts
Der Befehl
rpm -q -i rpm
z.B. gibt die folgende Information aus:
Name : rpm Distribution: S.u.S.E Linux Version : 2.4.1 Vendor: S.u.S.E. GmbH Release : 1 Build Date: Wed Jun 18 14:46:53 1997 Install date: Sat Jun 21 12:01:21 1997 Build Host: Fibonacci.suse.de Group : Source RPM: rpm-2.4.1-1.src.rpm Size : 1365662 Packager : feedback@suse.de URL : (none) Summary : Red Hat Package Manager Description : RPM is a powerful package manager, which can be used to build, install, query, verify, update, and uninstall individual software packages. A package consists of an archive of files, and package information, including name, version, and description.
Die Option -f
führt nur dann zum Ziel, wenn man den
kompletten Dateinamen, einschließlich des Pfades, kennt; es dürfen beliebig
viele zu suchenden Dateinamen angegeben werden, z. B.:
rpm -q -f /bin/rpm /usr/bin/wget
führt zu dem Ergebnis:
rpm-2.4.1-1 wget-1.4.5-2
Kennt man nur einen Teil des Dateinamens, so muß man sich mit einem Shell-Skript der folgenden Art behelfen (den gesuchten Dateinamen als Parameter beim Aufruf des Skripts angeben):
#! /bin/sh for i in `rpm -q -a -l | grep $1 `; do echo »$i« ist in Paket: rpm -q -f $i echo "" done
Anhand der Datenbank lassen sich auch Überprüfungen durchführen; eingeleitet
werden diese Vorgänge mit der Option -V
(gleichbedeutend mit
-y
oder --verify
). Damit veranlaßt man
rpm
, all die Dateien anzuzeigen, die sich im Vergleich zur
ursprünglichen Version, wie sie im Paket enthalten war, geändert hat.
rpm
stellt dem eigentlichen Dateinamen bis zu 8 Buchstaben voran,
die auf folgende Änderungen hinweisen:
5
S
L
T
D
U
G
M
Bei Konfigurationsdateien wird zusätzlich ein c
ausgegeben. Beispiel,
falls etwas an /etc/wgetrc
aus dem wget
geändert wurde:
rpm -V wget
S.5....T c /etc/wgetrc
Die Dateien der RPM-Datenbank liegen unter /var/lib/rpm
. Bei
einer /usr
-Partition von 500 MB kann die Datenbank durchaus 20 MB
Plattenplatz beanspruchen; insb. nach einem kompletten Update. Falls die
Datenbank über Gebühr groß erscheint, ist es meist hilfreich, mit der Option
--rebuilddb
eine neue Datenbank von der existierenden zu
erstellen; es kann nichts schaden, vor einem solchen "Rebuild" eine Kopie der
existierenden aufzubewahren.
Weiterhin legt das cron
-Skript cron.daily
täglich
eine gepackte Kopie der Datenbank unter /var/adm/backup/rpmdb
an,
falls Änderungen vorgefallen waren; die Anzahl der Datenbankkopien wird durch
die Variable MAX_RPMDB_BACKUPS
(Standard: 5) in der
/etc/rc.config
vorgegeben wird; es ist mit bis zu 3 MB pro Backup
zu rechnen (bei einer 500MB großen /usr
). Dieser Platzverbrauch
ist unbedingt bei Bestimmung der Größe der Root-Partition zu berücksichtigen,
falls man für /var
keine eigene Partition vorsehen will.
Der Midnight Commander (mc
) ist von Hause aus in der Lage,
den Inhalt eines RPM-Archivs anzuzeigen bzw. Teile daraus zu kopieren. Er
bildet ein solches Archiv als ein virtuelles Dateisystem ab, so daß alle
gewohnten Menüpunkte des Midnight Commander - wenn sinnvoll - zur Verfügung
stehen: Die Kopfzeilen-Informationen der "Datei" HEADER
kann man
sich mit F3
ansehen; mit den Cursor-Tasten und Enter
läßt sich durch die Struktur des Archivs "browsen", um bei Bedarf mit
F5
Komponenten herauszukopieren. - Übrigens, dies ist etwas, das
der Emacs nicht beherrscht, bislang ;-)
Mit Alien (alien
) ist es möglich, die Paketformate der
verschiedenen Distributionen zu konvertieren. So kann man versuchen, alte
TGZ-Archive vor dem Installieren nach RPM umzuwandeln, damit während der
Installation die RPM-Datenbank mit den Paket-Informationen versorgt wird. Aber
Achtung: alien
ist ein Perl-Skript und befindet sich nach Angaben
der Programm-Autoren noch in einem Alpha-Stadium -- wenngleich es z.Zt. (5.2)
bereits die Version 5.19 erreicht hat.
Siehe auch:
Stichwörter: RPM, PAKETE, PAKETMANAGER, PACKAGE, INSTALL, UPDATE
Kategorien:
Paket-Installation
Feedback willkommen: Send Mail to ke@suse.de (Geben Sie bitte folgendes Stichwort an: SDB-ke_rpm
)
Übersicht
Stichwortsuche
History
Versionen
Kategorien
Alle Artikel
English