'''yum''' (''Yellow dog Updater, Modified'') ist ein [[RPM]]-Paketmanagement-Programm, das, ähnlich wie [[apt/RPM|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 [[RedHat]]s '''up2date''' deutlich schneller funktioniert. Homepage: http://www.linux.duke.edu/projects/yum/ Lizenz: [[GPL]] <<TableOfContents>> = 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 [[http://www.linux.duke.edu/projects/yum/yum-repo.ptml|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 [[attachment: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.