yum (Yellow dog Updater, Modified) ist ein RPM-Paketmanagement-Programm, das, ähnlich wie apt4rpm, automatisch Abhängigkeiten auflöst. Die Syntax ist relativ einfach und yum ist nicht so penibel wie apt. Das Erstellen eigener Installationsquellen (repositories) ist einfacher. yum ist v.a. auf Fedora sehr zu empfehlen, da er im Gegensatz zu RedHats up2date deutlich schneller funktioniert.
Homepage: http://www.linux.duke.edu/projects/yum/
Lizenz: GPL
Inhaltsverzeichnis
Features
- Mehrere Quellen(repositories)
- Einfache Konfigurationsdatei
- Korrekte Abhängigkeitsberechnung
- Schnelles Arbeiten
- rpm-konsistente Verhaltensweise
- comps.xml group Support, beinhaltet mehrere Quell-Gruppen
- Einfache Schnittstelle
Tipps & Tricks
Download zu langsam?
Wenn yum so konfiguriert ist, dass er per Zufall aus einer Mirror-Liste herunterlädt kann es sein, dass er einen sehr langsamen Mirror erwischt. Ein Ctrl-C schafft hier Abhilfe. Es bricht nicht die ganze Aktion ab, sondern nur den einen Download. yum versucht es dann mit dem nächsten Mirror. Gibt es keine weiteren Mirrors, wird die ganze Aktion abgebrochen!
Grafische Oberfläche?
siehe YumEx
Mini-Howto
Repositories
Einige yum - Repositories
Repositories für /RedHat
Repositories für /Fedora
Eigenes Repository erstellen
Altes yum
Eine "Repository" ist eine Installationsquelle. Um von dem eigenen Rechner (oder auch von einem gemounteten Verzeichnis) Pakete zu installieren, geht man am besten so vor:
yum-arch /pfad/zu/verzeichnis/mit/rpms
(Unterverzeichnisse werden mit durchsucht)
und in /etc/yum.conf eintragen:
[lokale Pakete] name=Meine RPMs baseurl=/pfad/zu/verzeichnis/mit/rpms
Neues yum
(Ab Version 2.?? )
In dem neueren yum wurde die Funktion der Datei /etc/yum.conf geändert. Dort sind jetzt keine Repositories mehr zu finden. Stattdessen gibt es ein Verzeichnis /etc/yum.repos.d/. Dieses enthält voreingestellt einige Dateien, die die Hauptrepositories beschreiben und mit ".repo" enden. In einer ".repo"-Datei kann man das Repository über "enabled=0" per Voreinstellung abschalten. Dann muss man, wenn man dennoch ausnahmsweise ein Paket daraus (z.B. fedora-devel) installieren möchte, etwas angeben wie: yum install --enablerepo=fedora-devel [paketname]
Beispiel der Datei fedora-extras.repo
Pakete installieren/updaten/entfernen
Installieren/Deinstallieren/Updaten |
|
Installation von RPMs |
yum install paket |
Upgrade einzelner Pakete (nur bereits installierte Pakete) |
yum update [paket] |
Upgrade des kompletten Systems |
yum upgrade |
Deinstallation von Paketen |
yum remove [paket] |
Paketsuche |
|
Welches Paket enthält Datei oder Feature |
yum provides [dateiname] |
Gibt es dieses Paket |
yum list [paket] |
Paketnamen und Beschreibungen durchsuchen |
yum search [begriff] |
Informationen anzeigen |
|
Verfügbare Pakete anzeigen |
yum list available |
Updatebare Pakete anzeigen |
yum list updates |
Aufräumen |
|
Löschen von Paketen/Headern/Metadaten/Cache/Allem |
yum clean [ packages | headers | metadata | cache | all ] |
Anmerkung: Für "paket" kann man auch Namensteile nehmen; wenn man z.B. etwas mit allen Paketen machen will, so geht das auch via 'gnome*' (natürlich gibt es auch Pakete bei GNOME die anders anfangen, z.B. "libgnome-"). Wichtig sind dabei die Anführungszeichen als Klammerung, weil ansonsten der Verzeichnisinhalt des aktuellen Verzeichnisses zur Vervollständigung des Namens durchsucht wird!
Gruppenbildung
Neuere yum-Versionen unterstützen Paketgruppen. Ein yum grouplist beispielsweise gibt eine Liste der installierten und verfügbaren Gruppen aus, z.B. "Administration Tools", "GNOME Desktop Environment", usw. Um zum Beispiel alle Pakete einer Gruppe zu aktualisieren, kann man yum groupupdate "GNOME Desktop Environment" eingeben.
Installationskonflikte
Folgendes Problem kann beim Mischen verschiedener Repositories, die nicht auf Kompatibilität untereinander achten, auftreten. Hier bei der Installation von InkScape:
# yum install inkscape Setting up Install Process ... Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Package inkscape.i386 0:0.39-1.1.fc3.rf set to be installed --> Running transaction check --> Processing Dependency: perl(SVG) for package: inkscape --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Package inkscape.i686 0:0.39-0.fdr.1.2 set to be installed --> Running transaction check Dependencies Resolved Transaction Listing: Install: inkscape.i386 0:0.39-1.1.fc3.rf Performing the following to resolve dependencies: Install: inkscape.i686 0:0.39-0.fdr.1.2 Is this ok [y/N]: y Downloading Packages: Running Transaction Test Finished Transaction Test Transaction Check Error: file /usr/bin/inkscape conflicts between attempted installs of inkscape-0.39-0.fdr.1.2 and inkscape-0.39-1.1.fc3.rf file /usr/bin/inkview conflicts between attempted installs of inkscape-0.39-0.fdr.1.2 and inkscape-0.39-1.1.fc3.rf
Lösung: Eine mögliche Lösung, falls man sich nicht auf kompatible Repositories beschränken will, ist es, den kompletten Paketnamen anzugeben. Hier: yum install inkscape-0.39-0.fdr.1.2
- Welche Repositories nutzt du?
- fedora.us, dag,livna-stable,updates-released
Downgrade
Historie ansehen:
yum history yum history list yum history info
Z.B. 5 Eintrag rückgängig machen
yum history undo 5
Leider können dabei Scripte, die bereits ausgeführt sind nicht rückgängig gemacht werden. Und Config-Dateien nachher kontrollieren.