Gut sortiert
Red Hats Paketverwaltung
RPM-Frontend Yum
Das Python-Tool Yum [2] wurde ursprünglich von Seth Vidal an der Duke Universität in den USA entwickelt. Viele Linux-Distributionen setzten es mittlerweile als RPM-Frontend ein. Yum kümmert sich transparent um die Abhängigkeiten zwischen verschiedenen Paketen und löst diese beim Installieren und Deinstallieren selbständig auf. Das gilt sowohl für lokal vorliegende Pakete als auch solche aus den Software-Repositories. Yum greift auf diese über die Netzwerkprotokolle FTP und HTTP zu. Jedes eingebundene Repository besitzt auf dem Client eine Konfigurationsdatei, die es beschreibt. Dieses liegt üblicherweise im Verzeichnis /etc/yum.repos.d/. Die Konfigurationsdatei des Fedora-Repositories sieht aus wie in Listing 4 zu sehen.
# cat /etc/yum.repos.d/fedora.repo [fedora] name=Fedora Repository baseurl=http://Pfad_zum_Verzeichnis/ enabled=1 metadata_expire=7d gpgcheck=1 gpgkey=http://fedoraproject.org/static/57BBCCBA.txt
Sie dient Yum als Grundlage zum Verwalten der Onlinedatenquellen. Die Option gpgcheck legt fest, dass Yum jedes Paket vor der Installation auf Integrität und Authentizität überprüft. Das geschieht mithilfe einer digitalen GPG-Signatur, die dem RPM-Paket optional beiliegt. Der zur Authentisierung notwendige Schlüssel muss in der lokalen RPM-Datenbank vorhanden sein. Ist das nicht der Fall, so lädt Yum diesen von der unter gpgkey angegeben URL herunter, und importiert ihn in die Datenbank. Manuell importieren Sie den Schlüssel mit # rpm --import Keydatei
. Der Authentitätscheck erfolgt über rpm -K Paket
.
Möchten Sie beispielsweise das Paket cobbler aus dem Fedora-Repository installieren, tippen Sie in der Konsole yum install cobbler. Da Cobbler das Paket httpd als Abhängigkeit benötigt, lädt Yum es direkt mit herunter und installiert es.
Um ein Paket mithilfe eines Schlagworts zu suchen, verwenden Sie den Aufruf # yum search Schlagwort
. Um die Paketbeschreibung zu erhalten tippen Sie # yum info Paketname
(Abbildung 1). Yum berücksichtigt dabei alle eingetragenen Repositories.
Damit Yum nicht bei jeder Abfrage eine neue Netzwerkverbindung aufbauen muss, lädt es beim ersten Kontakt mit einem Repository bestimmte Metadateien herunter und speichert diese lokal im Verzeichnis /var/cache/yum. Diese Metadateien enthalten Informationen über die Pakete, die das Repository bereitstellt. Dazu zählt unter anderem die Angabe, zu welchen Paketgruppen die einzelnen Pakete gehören. Diese Daten hält Yum einen festgelegten Zeitraum im Cache vor. Wie lange der ausfällt, legt die Option metadata_expire in der Konfigurationsdatei fest. Nach Erreichen des Zeitraums fragt Yum beim nächsten Kontakt mit dem Repository aktualisierte Metadateien ab und speichert sie erneut.
Yum eignet sich auch zum Installieren ganzer Paketgruppen. Der Aufruf yum grouplist zeigt alle verfügbaren Gruppen an, yum groupinstall Gruppenname
installiert die gewünschte. Welche Pakete zu einen Gruppe gehören, verrät der Schalter groupinfo.
Um ein lokales Paket zu installieren, verwenden Sie die Option localinstall. Auch in diesem Fall löst der Paketmanager die Abhängigkeiten auf, und lädt diese wenn nötig aus den Online-Repositories nach. Um Pakete und Gruppen vom System zu entfernen, verwenden Sie die Schalter remove und groupremove.
Als grafisches Frontend für RPM setzt Suse beispielsweise YaST ein, aktuelle Fedora-Systeme stellen das GPK-Tool (Package Manager for Gnome) bereit (Abbildung 2). Es bietet den gleichen Funktionsumfang wie Yum.
Do it yourself
Um selbst Pakete im eigenen Repository anzubieten, benötigen Sie lediglich einen Web- oder FTP-Server. Kopieren Sie alle Dateien, die Sie anbieten möchten, in ein Verzeichnis – beispielsweise /var/ftp/pub. Damit Benutzer auch über HTTP auf die Dateien zugreifen können, erzeugen Sie im Document-Root des Webservers mit dem Aufruf # ln -s /var/ftp/pub/ /var/www/html symbolischen Link darauf.
Die notwendigen Yum-Metadateien erzeugt der Befehl # createrepo /var/ftp/pub/. Danach enthält das angegebene Verzeichnis einen Unterordner namens repodata. In diesem befinden sich verschiedene Metadateien, die der Client beim ersten Kontakt mit dem Repository herunterlädt und lokal speichert. Damit ein Client nun Pakete aus dem Repository beziehen kann, muss dieser noch über eine entsprechende Yum-Konfigurationsdatei im Verzeichnis /etc/yum.repos.d/ verfügen.
Da Yum lediglich Dateien mit der Endung .repo beachtet, nennen Sie die eigene Konfigurationsdatei myrpms.repo. Diese muss mindestens die folgenden Zeilen enthalten:
[myrpms] baseurl=ftp://foo.bar.de/pub/ enabled=1 gpgcheck=1
Bei baseurl tragen Sie den Namen oder die IP-Adresse des eigenen Servers ein. Alternativ verwenden Sie als Übertragungsprotokoll HTTP. Benutzer können jetzt auf Yum-Repository zugreifen, und es in ihren Client einbinden.



