martedì 31 luglio 2012

glibc update problem , archlinux


conflict error that i've found during system update:

error: failed to commit transaction (conflicting files)
glibc: /lib exists in filesystem
Errors occurred, no packages were upgraded.

try to do this:

pacman -Syu --ignore glibc
pacman -Su 

if you find the same error after you have entered pacman -Su :

1) remove /lib/modules

mkdir backup
sudo mv /lib/modules /home/user/backup

or simply sudo rm -rf /lib/modules to erase this folder.

sudo pacman -Su

Have you found the same error? go to point 2!

2) read this useful guide in english. It helps to solve this problem:

https://bbs.archlinux.org/viewtopic.php?pid=1129800#p1129800

(post #39)

ufficial arch linux guide:

https://wiki.archlinux.org/index.php/DeveloperWiki:usrlib

errore con glibc all'aggiornamento di arch linux



Ho provato ad aggiornare e questo è l'errore che mi si è presentato:

 errore: impossibile eseguire l'operazione richiesta (file in conflitto)
glibc: /lib è già presente nel filesystem
Si sono verificati degli errori, nessun pacchetto è stato aggiornato.


al che , con un pò di ricerche su google ,sono arrivata alla guida ufficiale di archlinux a riguardo:

https://wiki.archlinux.org/index.php/DeveloperWiki:usrlib


Il mio è il secondo caso specificato , ovvero dà solo problemi con glibc e non con le sue dipendenze.

1) Se siete fortunati , tutto vi si risolverà con un bel:

pacman -Syu --ignore glibc

vi aggiornerà tutto eccetto glibc. Quando ha fatto , lanciate


pacman -Su

e dovrebbe installarvi glibc che prima mancava all'appello.
Nelle migliore delle ipotesi , ve lo aggiorna subito e non ci sono problemi.
Se continua a farvi errore purtroppo c'è da smattare un pò di più.

2) Secondo suggerimento di un blog (http://picchiopc.wordpress.com/2012/07/16/archlinux-lib-diventa-un-link-simbolico/) ho cancellato la cartella /lib/modules , senza effetto , o perlomeno non immediato. Voi provateci , magari come nel suo caso dopo il comando pacman -Su vi farà aggiornare glibc.

3) Se anche così non funziona , allora dovrete fare come spiega la guida ufficiale (meglio spiegata , ma in inglese qui:https://bbs.archlinux.org/viewtopic.php?pid=1129800#p1129800)
Ve lo traduco in italiano . Dovete lanciare questo comando:

find /lib -exec pacman -Qo -- {} +

e vedere tutto ciò che non ha a che fare con glibc. Io avevo una libreria , libnjb. Con una semplice ricerca su google ho capito a quale programma appartenesse , quindi l' ho disinstallato , almeno temporaneamente (per la cronaca era gnomad2 , il programma per rilevare il mio creative zen v plus).

pacman -Rs pacchettoinpiù

In questo modo mi ha eliminato gnomad e la sua dipendenza , cioè libnjb che mi dava noia.

Dopo di questo , lanciate:

grep '^lib/' /var/lib/pacman/local/*/files

anche qui potreste trovare cose non relative a glibc ( nel mio caso era tutto ok) e levate i pacchetti come citato prima.
Per scrupolo , lanciate ancora i comandi soprastanti e controllate che non vi sia sfuggito qualcosa.
Una volta verificato che è tutto appartenente solo a glibc, lanciare di nuovo

pacman -Su

stavolta dovrebbe andare :) con me ha funzionato.

p.s. NON USATE MAIIIII L'OPZIONE FORCE , almeno che non siate super bravi e non siate in grado di risolvervi per bene la faccenda dopo. Rischiate di riavviare e trovare un bel pasticcio.