Gentoo libxcb 1.4 Upgrade Leitfaden
1.
Aktualisieren auf libxcb 1.4
Befehlsauflistung 1.1: Aktualisieren der xcb-Pakete |
# emerge -1av x11-proto/xcb-proto x11-libs/libxcb
# emerge -1av x11-proto/xproto x11-proto/xextproto x11-libs/libX11 x11-libs/libXext
|
Sie haben nun alle benötigten Pakete mit Unterstützung für die neue libxcb.
2.
Reparieren der kaputten libtool-Archive
Auch wenn das Update schon vorbei ist und Ihr System immer noch funktioniert,
kann das Installieren von neuen Paketen oder Aktualisieren von Paketen einige
unerfreuliche Überraschungen mit sich bringen. Dies liegt an libtools
berühmt-berüchtigten Archiven: .la Dateien.
Das Problem ist, dass bis vor Kurzem libX11 eine private libxcb-Bibliothek
namens libxcb-xlib.so verwendet hat, die speziell für libX11 entwickelt
wurde. Auch wenn das selbst kein Problem darstellt, hat diese keine Bibliothek
(fast) jede einzelne .la Datei auf Ihrem System verschmutzt. So
funktioniert libtool eben.
Aber dies wird nun allmählich zum Problem, da neuere Versionen von libxcb diese
Bibliothek nicht mehr beeinhalten (und libX11 wurde natürlich entsprechend
angepasst). Wir müssen nun alle Referenzen auf diese Bibliothek in den
.la Dateien loswerden.
Um dies zu tun, führen Sie einfach
/usr/portage/x11-libs/libxcb/files/xcb-rebuilder.sh aus, um alle
.la Dateien auf Ihrem System zu reparieren.
Das Werkzeug teilt Ihnen auch mit, ob Shared-Libraries (.so Dateien,
normalerweise unterhalb von /lib und /usr/lib) die nun nicht mehr
bestehende Bibliothek referenzieren. Wenn es kaputte Pakete berichtet, lesen Sie
bitte weiter. Wenn nicht, haben Sie Glück gehabt und Ihr System ist in einem
guten Zustand. :)
3.
Reparieren der "kaputten" Shared-Libraries
Um zu vermeiden, dass die Systeme der Benutzer komplett zerstört werden, haben
wir entschieden, die Datei libxcb-xlib.so zu behalten, so dass Sie eine
Chance haben, Ihr System nach eigenem Ermessen zu reparieren. Wenn Sie die
Anweisungen oben befolgt haben, sollte Ihr System nun korrekt funktionieren --
sowohl beim Bauen von Paketen als auch beim Ausführen.
Aber bevor Sie libxcb-xlib.so entfernen können, müssen Sie einige wenige
Pakete neu bauen. Wenn Sie diese nicht neu bauen, wird das Entfernen der alten
Bibliothek Ihr System zerstören.
Führen Sie den folgenden Einzeiler aus, um eine einfache, aber effektive,
Untermenge von potenziell kaputten Paketen neu zu bauen. Keine Sorge, Pakete,
die Sie nicht installiert haben, werden nicht installiert.
Befehlsauflistung 3.1: Neubauen grundlegender Pakete |
# emerge --oneshot \
$(for i in x11-proto/ x11-libs/libxcb x11-libs/libX11 x11-libs/libXext \
x11-libs/libX x11-libs/xcb-util x11-libs/cairo \
x11-libs/pango x11-libs/gtk\\+ \
x11-libs/qt-gui; do \
qlist -IC $i; \
done) -av
|
Sobald dies erledigt ist, können Sie revdep-rebuild (aus
app-portage/gentoolkit) verwenden, um den Rest Ihres Systems zu
reparieren.
Befehlsauflistung 3.2: Neubauen der verbleibenden kaputten Pakete |
# revdep-rebuild -L libxcb-xlib.so.0
|
Wenn revdep-rebuild keine weiteren kaputten Pakete mehr auflistet,
können Sie libxcb-xlib.so.0 gefahrlos aus Ihrem Bibliothekenverzeichnis
löschen.
Befehlsauflistung 3.3: Löschen der jetzt unbenutzen Bibliotheken |
# rm -i /usr/lib/libxcb-xlib.so*
|
Die Inhalte dieses Dokuments sind, sofern nicht explizit
anders genannt, unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert. Die Gentoo Name and Logo
Usage Guidelines treffen zu.
|