SDB:YUM benutzen
Inhaltsverzeichnis
Konfigurationsdateien
Die Hauptkonfigurationsdatei ist /etc/yum.conf, Depotinformationen lassen sich direkt dort oder in einzelnen .repo-Dateien unter /etc/yum.repos.d ablegen. Zum Bearbeiten werden Systemverwaltungsrechte benötigt. Viele Optionen lassen sich sowohl global als auch einzeln für die Depots setzen. Hierbei überschreiben die Depotoptionen die globalen Optionen. Ausführliche Informationen enthält die Man-Seite von yum.conf.
Paketdepots
Yum arbeitet mit RPM-MetaData-Depots, wie sie auch von openSUSE verwendet werden. Diese Depots sind an einem Ordner namens repodata erkennbar.
Paketdepot einbinden
Um ein Paketdepot, im Yum-Jargon repo, einzubinden, müssen Sie über Systemverwaltungsrechte, also root-Rechte, bzw. Schreibrechte auf die Datei /etc/yum.conf, bzw. auf das Verzeichnis /etc/yum.conf.d verfügen. Die Depotinformationen können entweder in der yum.conf-Datei oder in separaten .repo-Dateien unter /etc/yum.repos.d abgelegt werden. Eine Depotinformation besteht mindestens aus drei Teilen: einer eindeutigen Depot-ID, einem Depotnamen und der Basisadresse (baseurl). Die Depot-ID muss dabei eine zusammenhängende Zeichenkette sein und darf nur ein Mal verwendet werden, sie wird zu Beginn in eckige Klammern gesetzt. Der Depotname ist frei wählbar, sollte aber keine Sonderzeichen enthalten. Die Basisadresse schließlich gibt den Pfad zum Depot an. Es können die Protokolle HTTP, FTP und file (für lokale Depots) verwendet werden. Die Adresse muss auf das Verzeichnis verweisen, in dem sich der repodata-Ordner befindet.
[Depot-ID] name=Erklaerender Name des Depots baseurl=http://depots.server.de/pfad/zum/depot/
Eine geschickte Möglichkeit von Yum ist es, für ein und das selbe Depot mehrere Basisadressen verwenden zu können, aus denen Yum wählen kann. Diese Adressen werden unterhalb der ersten angegeben und dürfen kein weiteres baseurl vorangestellt haben. Des weiteren lassen sich Depots mit der Option enabled ein und ausschalten. 1 heißt dabei, dass es eingeschaltet ist und 0 sollte dann klar sein. Yum kann zur Sicherheit die Signaturen der Pakete überprüfen, wofür es die Option gpgcheck gibt, die sich genauso wie enabled bedienen lässt. Um eine Signatur zu überprüfen wird allerdings ein öffentlicher Schlüssel benötigt. Diese Schlüssel kann Yum automatisch beziehen, wenn sie über gpgkey für das Depot eingebunden werden. Für gpgkey gelten die gleichen Regeln wie für baseurl. Im folgenden soll dies an zwei Depots verdeutlicht werden; am Basisdepot (oss) und dem Quellpaketdepot (src-oss) von openSUSE 11.4:
[Basisdepot] name=Basispaketdepot (openSUSE 11.4) enabled=1 gpgcheck=1 gpgkey=http://download.opensuse.org/distribution/11.4/repo/oss/pubring.gpg baseurl=http://download.opensuse.org/distribution/11.4/repo/oss/suse/ http://ftp.gwdg.de/pub/opensuse/distribution/11.4/repo/oss/suse/ ftp://ftp.gwdg.de/pub/opensuse/distribution/11.4/repo/oss/suse/ http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.4/repo/oss/suse/ ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.4/repo/oss/suse/
[Basisdepot-Quellpakete] name=Quellen der Pakete des Basisdepot (openSUSE 11.4) enabled=0 baseurl=http://download.opensuse.org/distribution/11.4/repo/src-oss/suse/ http://ftp.gwdg.de/pub/opensuse/distribution/11.4/repo/src-oss/suse/ ftp://ftp.gwdg.de/pub/opensuse/distribution/11.4/repo/src-oss/suse/ http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.4/repo/src-oss/suse/ ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.4/repo/src-oss/suse/
Über diese grundlegenden Optionen hinaus lassen sich die Depots noch wesentlich weiter anpassen. So lassen sich gezielt nur bestimmte Pakete aus einem Depot beziehen (includepkgs) oder aber auch Pakete gezielt ausschließen (exclude). Weitere Optionen und Erläuterungen finden Sie in der man-Seite der yum.conf: man 5 yum.conf
Build Service
Die Depots im Portal:Build Service von openSUSE enthalten alle schon eine fertige .repo-Datei für das jeweilige Depot. Sie brauchen diese Datei nur herunterzuladen und unter /etc/yum.repos.d/ abspeichern und schön können Sie diese Depots mit yum anzapfen.
Yum verwenden
Nachdem Sie Paketdepots hinzugefügt haben, können Sie aus diesen heraus Pakete installieren oder aktualisieren. Natürlich können Sie auch schon installierte Pakete löschen. Sie müssen bei Yum die Paketinformationen aus den Depots nicht explizit aktualisieren. Yum lädt nach einer gewissen Zeit bei der Benutzung automatisch neue Informationen herunter. Dieser Wert lässt sich über die Option metadata_expire in yum.conf global festlegen oder auch für einzelne Depots in deren Abschnitt angeben. Der Wert wird dabei in Sekunden angegeben und steht standardmäßig auf 1800. Wenn die vorhandenen Informationen also noch nicht älter als 30 Minuten sind, lädt Yum keine neuen Informationen herunter. Ist die Zeit jedoch überschritten aktualisiert Yum die Informationen.
Namenskonventionen
Man kann mit dem richtigen Paketnamen ganz gezielt eine bestimme Paketversion verarbeiten.
- name
Wenn nur der Paketname angegeben wird, wird dieses Paket in der höchsten verfügbaren Version verarbeitet. Bspw: kernel-default - name.arch
Sie können gezielt eine bestimmte Architektur auswählen. Bspw: kernel-default.x86_64 - name-ver
Auch einer ganz bestimmten Version steht natürlich nichts im Weg. Bspw: kernel-default-2.6.31.12-0.2 - name-ver-rel
Außerdem kann auch noch nach einer bestimmten Ausgabe (release) verlangt werden. kernel-default-2.6.31.12-0.2 - name-ver-rel.arch
Auf die Spitze kann man es auch treiben ;-). Bspw. kernel-default-2.6.31.12-0.2.x86_64
Pakete suchen und finden, Informationen anzeigen lassen
Yum verfügt über verschiedene Parameter mit denen man nach Paketen suchen kann oder sich bestimmte Informationen anzeigen lassen kann. Diese können teilweise auch mit Platzhaltern verwendet werden (bspw. kernel*). Im folgenden werden die wichtigsten Parameter vorgestellt, weitere finden Sie in der Man-Seite von yum.
list
Mit list lassen sich verschiedene Informationen anzeigen, bspw. welche Pakete installiert sind usw. Wenn der Befehl alleine ausgeführt wird, bezieht er sich auf alle Pakete, es können ihm auch auch ein oder mehrere Pakete als Argument übergeben werden, wobei sich die Auflistung dann nur auf diese bezieht. Bei den Paketnamen können auch Platzhalter verwendet werden.
Hiermit würden alle Pakete angezeigt, die mit kernel beginnen, also kernel-default, kernel-source, usw. Das einfügen in Hochkommata sorgt dafür, dass die verwendete Kommandozeile den Platzhalter nicht erweitert. List lässt sich mit verschiedenen Argumenten abstufen.
- available
Listet alle Pakete in Depots auf, die sich installieren lassen. Also nicht die, die schon installiert sind. - updates
Listet alle Pakete auf, für die es in den Depots neuere Versionen gibt. - installed
Listet alle installierten Pakete auf. - extras
Listet alle Pakete auf, die zwar installiert sind, aber in keinem der verwendeten yum-Depots zu finden sind. - obsoletes
Listet alle im System installierten Pakete auf, die durch Pakete in den Depots ersetzt werden. - recent
Listet Pakete auf, die erst kürzlich in den Depots eingetroffen sind.
Beispiele:
erde:~ # yum list available 'kernel*' <Eingabetaste>
erde:~ # yum list updates 'kernel*' <Eingabetaste>
search
Mit search können Sie die Depotbestände und die installierten Pakete nach einem bestimmten Schlüsselwort durchsuchen. Es werden dabei, die Namen, Zusammenfassungen und Beschreibungen der Pakete einbezogen.
info
Mit info lassen sich die Paketbeschreibungen anzeigen. Der Parameter kann auch mit den gleichen Optionen wie list benutzt werden und kann ebenfalls Platzhalter verwenden.
Pakete aktualisieren, installieren und entfernen
Der wesentliche Teil einer Paketverwaltung ist natürlich die ehrenvolle Aufgabe, dass System aktuell zu halten und Pakete zu installieren und zu entfernen.
check-update
Mit check-update kann überprüft werden ob Aktualisierungen vorhanden sind. Falls ja werden diese Angezeigt und ein Exit-Wert von 100 wird zurückgegeben. Falls keine aktuelleren Pakete vorhanden sind wird darauf hingewiesen und der Exit-Wert beträgt 0.
update
Mit update können Pakete aktualisiert werden, falls neuere Versionen vorhanden sind, wobei alle Abhängigkeiten aufgelöst werden und so auch Pakete installiert oder aktualisiert werden, die von diesem benötigt werden. Wenn kein Paket angegeben ist, werden alle vorhandenen Aktualisierungen eingespielt.
upgrade
Mit upgrade lässt sich gut eine komplette Aktualisierung einer Distribution durchführen, da hier auch Pakete ersetzt werden, deren Inhalt oder Aufgabe nun von anderen Paketen wahrgenommen wird. Ein ähnlicher Effekt lässt sich auch mit update und der Option --obsoletes erreichen. Bei der Aktualisierung einer kompletten Distribution sollte man allerdings Vorsicht walten lassen.
install
Mit install lassen sich Pakete installieren, wobei alle Abhängigkeiten aufgelöst werden und so auch Pakete installiert werden, die von diesem benötigt werden.
Entfernen oder Löschen
Mit den beiden Kommandos remove und erase lassen sich Pakete entfernen. Hierbei werden die Abhängigkeiten aufgelöst und auch Pakete deinstalliert, die von dem zu entfernenden Paket abhängen.
Wartung
Yum löscht die heruntergeladenen Pakete nicht sondern behält sie auf der Festplatte. Außerdem fallen mit der Zeit immer mehr Meta- und Headerdaten an. Mit der clean-Option lassen sich diese Daten bereinigen.
- packages
Hiermit werden alle zwischengespeicherten Pakete gelöscht. - headers
Hiermit werden alle Header-Dateien gelöscht, die Yum zum auflösen der Abhängigkeiten verwendet. - metadata
Hiermit werden alle vorhandenen Metadaten der Pakete gelöscht und Yum wird gezwungen, sie beim nächsten Start erneut herunterzuladen. - dbcache
Löscht den SQLite-Zwischenspeicher den Yum verwendet, um schneller auf Metadaten zugreifen zu können, wodurch Yum gezwungen wird, diesen beim nächsten Start erneut einzulesen. - all
Diese Option fasst die Aufgaben von clean packages und clean header zusammen.
erde:~ # yum clean packages <Eingabetaste>
erde:~ # yum clean headers <Eingabetaste>
Die yum-shell
Yum verfügt über eine eigene, integrierte Kommandozeile in welcher sich yum-Operationen durchführen lassen, ohne dass Yum bei jedem Befehl neu gestartet werden muss. In die Shell gelangen Sie mit yum shell. Sie können dort die gleichen Befehle ausführen wie auf einer gewöhnlichen Kommandozeile mit yum. Durch die Eingabe von help erhalten Sie einen Hilfetext, mit quit oder exit können Sie die Shell wieder verlassen. In der Shell werden die Befehle allerdings nicht sofort ausgeführt, sondern erst in eine Warteschlange eingestellt. Um die Befehle ausführen zu können, geben Sie run ein. Mit transaction bzw. ts können Sie sich anschauen, welche Aktionen ausgeführt würden.
erde:~ # yum shell <Eingabetaste>
> remove kyum
> install yumex
> run
> quit