Fedora Trickkiste: yum-pinning

Ab und zu kommt es vor, dass man ein Paket in einer bestimmten Version halten möchte. In meinem aktuellen Fall ist es Gwibber, dass in der aktuellen nicht korrekt funktioniert. Mir ist es unmöglich Tweets zu schreiben oder die Timeline manuell zu aktualisieren. Der Bug ist gemeldet und die nächste Version, die das Problem behebt, ist bereits in Rawhide/Branched. Als vorübergehende Lösung entschied ich mich, ein Downgrade durchzuführen und die Version festzupinnen.
Unter debian und Ableger gibt es das sogenannte apt-pinning. Aber unter Fedora? Ja, auch hier gibt es das!
Damit man ein Paket, hier Gwibber, auf eine bestimmte Version festpinnen kann, braucht man das Plugin Versionlock. Da es sich in den Paketquellen befindet, reicht ein:

~# yum install yum-plugin-versionlock

Jetzt muss nur noch in der /etc/yum/plugins.d/versionlock.list das Paket (inkl. Version) eingetragen werden. Also in diesem Fall:
gwibber-3.1.0-2.fc16
Fertig! Ab jetzt zeigt euch yum keine Updates für die eingetragenen Pakete. Bei mir sieht das so aus:

~$ yum check-update
Geladene Plugins: auto-update-debuginfo, changelog, fastestmirror, langpacks, presto, versionlock
Loading mirror speeds from cached hostfile
* fedora: mirror.de.leaseweb.net
* rpmfusion-free: mirror.de.leaseweb.net
* rpmfusion-free-updates: mirror.de.leaseweb.net
* rpmfusion-nonfree: mirror.de.leaseweb.net
* rpmfusion-nonfree-updates: mirror.de.leaseweb.net
* updates: fedora.tu-chemnitz.de
~$

Nun stehe ich natürlich vor dem Problem, dass ich nicht sehe, wann die nächste Version von Gwibber als Update bereit steht. Ich könnte natürlich immer auf Koji nachgucken, ob es soweit ist. Aber das ist nicht sehr praktisch. Und genau dafür hat yum den Schalter ‚disableplugin‘ mit dem man ein oder mehrere Plugins für einen Aufruf deaktivieren kann. In der Praxis sieht das dann so aus:

~$ yum check-update --disableplugin=versionlock
Geladene Plugins: auto-update-debuginfo, changelog, fastestmirror, langpacks, presto
Loading mirror speeds from cached hostfile
* fedora: mirror.de.leaseweb.net
* rpmfusion-free: mirror.de.leaseweb.net
* rpmfusion-free-updates: mirror.de.leaseweb.net
* rpmfusion-nonfree: mirror.de.leaseweb.net
* rpmfusion-nonfree-updates: mirror.de.leaseweb.net
* updates: fedora.tu-chemnitz.de

gwibber.noarch 1:3.1.0-4.fc16 updates
~$

Und völlig korrekt zeigt mir yum das nicht funktionierende Update für Gwibber an. Nächster Schritt wäre jetzt ein passender Cronjob, damit das nicht mehr selber machen muss. Aber das hat ja nur noch peripher etwas mit dem Versionlock zu tun…

Quelle: Fedora Documentation – Software Managment (engl.)

Fedora Trickkiste: yum beschleunigen

Nachdem ich heute wieder einmal gelesen habe, dass yum so fürchterlich langsam sein soll, dachte ich mir: “Schreibste mal ein, zwei Kniffe auf“. Dann brauch ich mich nicht immer wiederholen. Inwieweit die euch was bringen, hängt von eurem System und eurer Internetanbindung ab. Your mileage may vary!

PackageKit-yum-plugin

Dieses yum-PlugIn gehört (bei Fedora 16) anscheinend immer noch zur Standardinstallation. Es sorgt dafür, dass nach jedem Aufruf von yum im Hintergrund PackageKit checkt, ob Updates verfügbar sind. Bei einer langsamen Anbindung nervt das extremst. Also entweder in der

/etc/yum/pluginconf.d/refresh-packagekit.conf

den Schalter

enabled=0

setzen oder gleich deinstallieren. Man braucht es nicht wirklich.

yum-plugin-fastestmirror

Mit dem PlugIn werden schnellsten Spiegelserver für die aktiven Repositories ausgewählt, sofern es Spiegelserver gibt und deren Nutzung aktiviert ist. Die ermittelten Server werden in der Datei ‚/var/cache/yum/$arch/$releasever/timedhosts.txt‘ also in meinem Fall:

/var/cache/yum/x86_64/16/timedhosts.txt

gespeichert. Ein klein wenig kann man das PlugIn auch konfigurieren. Ich gehe hier nur auf die wichtigsten ein:

maxhostfileage=10 #Anzahl der Tage, die diese Liste gespeichert wird
include_only=.nl,.de,.uk,.ie #Die sog. Top-Level-Domains, die genommen werden sollen. Mir hat's nicht wirklich geholfen, aber vielleicht ja euch.

Die paar Optionen, die fehlen, dürft ihr in der Dokumentation nachlesen.

yum-presto

Presto sorgt dafür, dass immer nur ein sog. Inkrementelles Update durchgeführt wird. Ihr zieht also wirklich nur die Veränderungen und nicht das komplette Paket. Ist standardmäßig installiert und aktiviert.

yum.conf

Man kann mit dem Schalter -C die Nutzung des Caches erzwingen und so eine lästige Abfrage bei einem Server vermeiden. Man sieht also bei einem

yum -C search $foo

nur im lokalem Cache nach und nicht online. Erhöht enorm die Reaktionsgeschwindigkeit von yum, kann aber veraltete Informationen hervorbringen. Das Ganze ist natürlich erst richtig sinnvoll, wenn man die Option ‚keepcache‘ eingeschaltet hat. Dazu ändert man in der Datei

/etc/yum.conf

die Zeile

keepcache=0

in

keepcache=1

Hilfreiche Quelle

Wer sich mit yum weiter auseinander setzen will, dem lege ich die wirklich gute Dokumentation ans Herz.

So! Das war es eigentlich schon. Ich hoffe, dass das dem einem oder anderem weiter hilft. (Natürlich auch der einen oder anderen. ;) ) Frage, Anmerkungen und Kritik kommen in die Kommentare!

Wie ich zu Fedora kam…

Ich hatte gerade eine Unterhaltung via identi.ca über meine Fedora Anfänge. Da sich das aber schlecht in 140 Zeichen pressen lässt, will ich nochmal hier ausführlicher darauf zurück kommen. Vielleicht findet es der eine oder andere ja interessant.

Als ich meinen ersten Kontakt mit Fedora hatte, war ich eigentlich glücklicher ubuntu User. Ich glaub, ich war sogar Mitglied beim ubuntuusers.de-Team. Kann auch sein, dass das erst später kam. So genau kann ich mich nicht erinnern. (/edit: march hat offenbar ein besseres Gedächtnis als ich: Ich war damals im Ikhayateam. Danke für den Hinweis.) Ich war also mehr oder weniger glücklich mit der Distribution meiner Wahl. Allerdings war ich auch neugierig, was andere Distributionen denn so anders machten. Ich war noch relativ neu in der Linux-Welt und so ganz klar, dass die alle auch nur mit Wasser kochen, war mir das noch nicht.
Also war der Plan schnell gefasst: Eine Partition zu testen sollte her. Ich wollte ja eigentlich nicht wechseln, zumindest hatte ich das nicht vor.
Aber welche Distribution? Es gibt ja nicht gerade wenige und mir fehlte (und fehlt) die Zeit jede zu testen. Also überlegte ich mir ein paar Auswahlkriterien.

Es sollte für den Anfang eine der sogenannten Major-Distributionen werden. Die haben (meist) den Vorteil, dass sie über große Repositories verfügen und man muss nicht alles aus den Quellcodes backen. Worauf ich damals keine Lust hatte. Wie gesagt, ich war noch relativ neu in der Linux-Welt. Ein weiterer Vorteil, so dachte ich mir, sei, dass diese Distributionen eine große und aktive Community haben. Das war mir wichtig, damit ich zur Not Fragen stellen konnte und auch eine Antwort bekommen würde.
Und ich wollte eine Distribution, die RPM Pakete einsetzt. Nicht weil ich debian Pakete doof fand, sondern weil ich es schlicht ausprobieren wollte. So blieben im Prinzip nur openSUSE und Fedora. Aber openSUSE wollte ich nicht. Ich hatte schon bevor ich ubuntu einsetzte unschöne Erfahrungen mit openSUSE gemacht. Bevor mich jemand schlägt: Ja, es war mein Fehler, nicht der von openSUSE. Trotzdem wollte ich kein openSUSE. Das schien (und scheint) nicht zu mir zu passen.
Blieb nur noch Fedora. Und nachdem ich mich ein wenig „schlau“ gelesen hatte (das deutsche Fedorawiki hat einen schönen Vergleichsartikel), ging es dann auch los.
Die damals vorliegende Version hieß Fedora 9 „Sulphur“. Ist also schon eine kleine Ewigkeit her. Und die Hälfte von dem, was unter ubuntu funktionierte, lief unter Fedora nicht oder nicht so, wie ich es erwartet hatte. Und natürlich lief mein blöder Broadcom-WLAN-Chip nicht. Aber das Problem hatte ich erwartet und wusste, was ich tun musste. Stichwort: rpmfusion. Und Fedora machte unter der Haube einiges anders als ubuntu. Und das gefiel mir. Fedora machte das nicht besser, sondern anders. Besonders angetan hatte es mir die Ausgabe von yum. Yum listet Pakete in einer schnieken Tabelle auf, während apt-get optisch gesehen die raus rotzt. Das stört mich heute noch.

Wirklich vermisst habe ich nur die apt-get Option ‘autoremove’. Das yum PlugIn remove-with-leaves war nur ein schwacher Ersatz. Um so glücklicher war ich als die Option „clean_requirements_on_remove“ eingeführt wurde. Das funktioniert im Prinzip genauso wie ein ‘apt-get autoremove’, nur dass man es nicht extra ausführen muss.
Fedora wirkte auf mich ein ganzes Ende rustikaler als ubuntu. Aber ich fand das gut. Und als dann Fedora 10 erschien, entschied ich mich von ubuntu zu verabschieden und Fedora als Hauptsystem einzusetzen. Und dabei bin ich bis Heute geblieben.

P.S.: Ich hab noch einen Screenshot von Fedora 9 gefunden. Das sieht so gruselig aus, dass ich wundere, wie ich es geschafft habe zu wechseln. Wahrscheinlich sah ubuntu auch nicht besser aus. ;)

Screenshot von der Fedora 9 LiveCD mit Gnome 2.2

Screenshot von der Fedora 9 LiveCD mit Gnome 2.2