Quo vadis, Gentoo?

Die meisten, die mich persönlich kennen oder durch das Archiv dieses Blogs stöbern, wissen, das Gentoo meine absolute Lieblingsdistribution ist. Der Grund ist für mich vor allem das Paketsystem "Portage" bzw. das Konzept der Use-Flags, welche eine Anpassung des System auf einem Level erlaubt, zu dem man bei den üblichen Binärdistributionen wie Ubuntu, SuSE, RedHat und co nur mit sehr großem Aufwand gelangen kann - der User "BliZZarD" hat das Anfang des Jahres im Heise-Forum ziemlich gut auf den Punkt gebracht.

Doch seit sich vor einigen Jahren der Gründer Daniel Robbins aus dem Projekt zurückgezogen hat, lässt das System spürbar nach. Zunächst hielt ich das Editorial im aktuellen LinuxUser (11/2008) für übertrieben - doch beim letzten Update stieß ich auf das in Bug #244511 beschriebene Problem.

Offenbar bereits seit drei Tagen sind Pakete als "Stable" markiert, die zur Installation die noch als unstable geltene Portage-Version 2.1.5 benötigen. Im Ergebnis sieht man beim Versuch, ein Update durchzuführen, im Moment folgende Ausgabe:

Calculating world dependencies... done! 
[ebuild  U    ] sys-libs/com_err-1.40.9  USE="nls" 0 kB 
[ebuild  N    ] sys-libs/e2fsprogs-libs-1.41.2  USE="nls" 0 kB 
[ebuild  U    ] sys-fs/e2fsprogs-1.41.2  USE="nls" 0 kB 
[ebuild  U    ] sys-libs/ss-1.40.9  USE="nls" 0 kB 
[blocks B     ] sys-libs/ss (is blocking sys-libs/e2fsprogs-libs-1.41.2) 
[blocks B     ] sys-libs/com_err (is blocking sys-libs/e2fsprogs-libs-1.41.2) 
[blocks B     ] sys-libs/e2fsprogs-libs (is blocking sys-libs/ss-1.40.9, 
sys-libs/com_err-1.40.9)

Die übliche Lösung bei solchen "blockings" ist es, das betroffene Paket vor dem Update zu entfernen. In diesem Fall wäre das aber hochgradig fatal, denn das zum Download der Pakete verwendete Programm "wget" hängt von der Systembibliothek "com_err" ab, wie Robert Wolf bereits vor zwei Tagen feststellte. Dieser auch von den Entwicklern empfohlene und normalerweise korrekte Weg würde einem das System also beschädigen und unter Umständen nur mit recht hohem Aufwand wiederherstellbar machen (sprich: die benötigten Pakete an einem anderen Rechner herunterladen und anschließend kopieren).

Die Lösung ist eigentlich einfach und von Daniel Carosone in Beitrag #40 beschrieben: Die Pakete wieder als unstable markieren, bis portage-2.1.5 stabil geworden ist und die Blockings selber Auflösen kann. Doch bis jetzt ist nichts passiert. Für das Projekt ist das wirklich peinlich, mit einer stabilen Version, die sich seit drei Tagen nicht sauber aktualisieren lässt, macht sich das Projekt wirklich keine Freude.

Wer davon betroffen ist, kann entweder (1) Portage in der Version 2.1.5 als stabil markieren und anschließend auf diese Version wechseln:

echo '=sys-apps/portage-2.1.5*' >> /etc/portage/package.keywords 
emerge -uav portage

oder (2) die Installation der blockierten Pakete verhindern:

echo '=sys-fs/e2fsprogs-1.41.2' >> /etc/portage/package.mask

Obwohl ich mit beiden Verfahren erfolgreich war, ist (2) meine klare Empfehlung. Zumindest solange, wie es keine saubere Lösung für das Problem gibt und man auf die neuere Version der Programme nicht angewiesen ist.