Gentoo Logo

Guida all'aggiornamento di libxcb 1.4 in Gentoo

Indice:

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*


Stampa

Aggiornato il 12 settembre 2009

Oggetto: Questa guida mostra come aggiornare libxcb dalla versione 1.1.90.2 (o precedenti) a libxcb 1.4.

Remi Cardona
Autore

Federico Della Ricca
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.