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.)