Archlinux: aggiornamento di glibc e problemi con le directory /usr/lib e /lib

 

Archlinux è una distro Linux molto interessante sotto tutti i punti di vista, tranne quello dell'uso non sempre user-friendly del sistema operativo che lo rende non proprio dedicato ai principianti. Tra l'altro, l'ottima caratteristica di essere una rolling-release aggrava però la questione della gestione periodica del sistema, sottoposto a continui aggiornamenti che rendono necessario l'attento intervento dell'utente.

In particolare un aggiornamento recente del sistema potrebbe dare problemi con l'update dell'importante pacchetto glibc, sintetizzato da un messaggio di impossibilità dello stesso a causa della presenza della directory /lib nel sistema. Ciò è dovuto alla scelta degli sviluppatori  di rendere la directory /lib un link simbolico alla nuova directory /usr/lib dove saranno mantenute le librerie necessarie al funzionamento del sistema. Questa scelta è stata segnalata sul sito italiano di ArchLinux in data 14 luglio 2012. Per ovviare al mancato aggiornamento si consiglia di dare da terminale un aggiornamento con l'opzione --ignore, ovvero pacman -Syu --ignore glibc e successivamente concludere l'update con pacman -Su.

Tuttavia questa semplice procedura potrebbe non funzionare e sarà necessario andare al wiki ufficiale di ArchLinux per questa tematica. Bisogna leggerlo attentamente (è in inglese), soprattutto nella sezione "Issue 2: The final "pacman -Su" still has conflicts in /lib" perchè è quella la situazione più frequente da risolvere. Quello che il wiki non dice è che potreste trovarvi in una specie di circolo vizioso in cui muovendo o cancellando i file della vostra attuale directory /lib non sarete più in grado di gestire il sistema anche con il terminale! Ogni comando da terminale, compreso pacman risulterà non eseguibile, almeno di ripristinare la directory con i suoi files. Fate quindi una copia della directory /lib prima di smanettare secondo quanto detto dallo wiki. Molto probabilmente dovrete disinstallare, una volta ricopiati i files originali, le librerie a 32 bit presenti nel vostro sistema che causano errori. Per farlo comando pacman -Rdd lib32-glibc.

A questo punto, ridando il comando pacman -Su l'update di glibc dovrebbe funzionare e creare finalmente un link simbolico /lib ad /usr/lib. Naturalmente dovrete ripristinare le librerie a 32 bit. Controllate se avete attivato il repository multilib in /etc/pacman.conf (togliete eventualmente i cancelletti '#' davanti alle righe) e ridate un pacman -Syu. Il gestore dei pacchetti dovrebbe accorgersi delle dipendenze mancanti e reinstallare tutto il necessario.