Guida all'aggiornamento di libxcb 1.4 in Gentoo
1.
Aggiornamento a libxcb 1.4
Codice 1.1: Aggiornamento dei pacchetti xcb |
# emerge -1av x11-proto/xcb-proto x11-libs/libxcb
# emerge -1av x11-proto/xproto x11-proto/xextproto x11-libs/libX11 x11-libs/libXext
|
Ora tutti i pacchetti necessari con il supporto per la nuova libxcb sono stati
installati.
2.
Riparazione degli archivi libtool danneggiati
Anche se l'aggiornamento potrebbe essere concluso ed il sistema funzionare,
l'installazione o l'aggiornamento di nuovi pacchetti potrebbe portare a
spiacevoli sorprese, a causa dei famigerati archivi con estensione .la
creati da libtool.
Il problema è che fino a poco tempo fa, libX11 utilizzava una versione della
libreria libxcb dedicata chiamata libxcb-xlib.so, creata specificatamente
per libX11. Di per sé questo non costituisce un problema, ma va a inquinare i
file .la installati nel sistema (a causa del meccanismo di funzionamento
di libtool).
Poiché le nuove versioni di libxcb non contengono più questa libreria (e
quindi libX11 è stato modificato di conseguenza), bisogne rimuovere tutti i
riferimenti a questa libreria all'interno dei file .la.
A questo scopo, basta eseguire
/usr/portage/x11-libs/libxcb/files/xcb-rebuilder.sh per riparare tutti i
file .la del proprio sistema.
Questo strumento inoltre notifica se ci sono librerie condivise (i file
.so, che di solito si trovano in /lib e /usr/lib) che
contengono ancora riferimenti alla libreria rimossa. Se così fosse, continuare a
leggere. In caso contrario, si è fortunati e il sistema è pronto e funzionante.
3.
Riparazione delle librerie condivise danneggiate
Per evitare di danneggiare seriamente i sistemi degli utenti, è stato deciso di
mantenere libxcb-xlib.so in modo di dare la possibilità agli utenti di
sistemare il proprio sistema gradualmente. Se si sono seguite le istruzioni fin
qui riportate, il sistema dovrebbe funzionare correttamente sia nella
compilazione che nell'esecuzione dei programmi.
Prima di poter rimuovere libxcb-xlib.so, bisogna ricompilare alcuni
pacchetti. Se non venissero ricompilati, rimuovere la vecchia libreria renderà
il sistema non funzionante.
Eseguendo la linea di comando qui sotto verrà ricompilato un semplice ma
efficace sottoinsieme dei pacchetti potenzialmente danneggiati. Non verranno
installati pacchetti che non siano già presenti nel sistema.
Codice 3.1: Ricompilazione dei pacchetti essenziali |
# 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
|
Fatto ciò, si può utilizzare revdep-rebuild (contenuto in
app-portage/gentoolkit) per sistemare il resto del sistema.
Codice 3.2: Ricompilazione dei pacchetti danneggiati rimasti |
# revdep-rebuild -L libxcb-xlib.so.0
|
Quando revdep-rebuild non darà più notifiche di pacchetti danneggiati,
si potrà tranquillamente rimuovere libxcb-xlib.so.0 dalla directory delle
librerie.
Codice 3.3: Rimozione della libreria non più usata |
# rm -i /usr/lib/libxcb-xlib.so*
|
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|