Como corrigir “erro ao carregar bibliotecas compartilhadas: libgl.so.1”

4

Depois de executar este comando dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

Eu tenho o problema ao abrir o smplayer, cairo-dock, unidade-2d-shell e amdconfig, "erro ao carregar bibliotecas compartilhadas: libGL.so.1: não é possível abrir o arquivo de objeto compartilhado: Nenhum arquivo ou diretório". Talvez existam outras aplicações que atendam ao mesmo problema.

Mas eu tenho o arquivo

locate libGL.so.1  
/usr/lib/FGL.renamed.libGL.so.1.2
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2
/usr/lib/i386-linux-gnu/libGL.so.1
/usr/lib/i386-linux-gnu/libGL.so.1.2
/usr/lib/i386-linux-gnu/fglrx/fglrx-libGL.so.1.2
/usr/lib/i386-linux-gnu/mesa/FGL.renamed.libGL.so.1.2
/usr/lib/x86_64-linux-gnu/mesa/FGL.renamed.libGL.so.1.2
/usr/lib32/libGL.so.1
/usr/lib32/libGL.so.1.2



ldd $(which unity-2d-shell)|grep libGL  
libGL.so.1 => not found        
ldd $(which mplayer)|grep not  
libGL.so.1 => not found

Mas

ldd $(which smplayer)|grep libGL  

não tem nada.

    
por Ziu 03.10.2013 / 16:57

2 respostas

2

@Braiam está no local. Você também deve saber que encontrar um arquivo com locate não significa que ele exista. locate usa um banco de dados que é atualizado de vez em quando. Não pesquisa o systsem de arquivo atual mas é banco de dados. Você pode executar updatedb para atualizar o banco de dados antes de pesquisar ou usar o sinalizador -e :

-e, --existing
     Print only entries that refer to files existing at the time locate is run.

Por exemplo:

$ touch stupid_stupid_file.txt
$ locate stupid_stupid_file.txt   ## No results
$ sudo updatedb                   ## refresh database
$ locate stupid_stupid_file.txt
/home/terdon/stupid_stupid_file.txt  ## the file was found after updatedb
$ rm stupid_stupid_file.txt          ## delete the file
$ locate stupid_stupid_file.txt
/home/terdon/stupid_stupid_file.txt   ## the file is still in the database 
$ locate -e stupid_stupid_file.txt   ## the file is not found using -e
    
por 03.10.2013 / 18:00
3

Provavelmente, algumas bibliotecas vinculadas quebraram quando você desinstalou vários pacotes de uma só vez. Você deve ter corrido dpkg -l |grep ^rc|awk '{print $2}' antes da mão para saber o que acontecerá. Felizmente isso pode ser resolvido usando sudo ldconfig . Isso recria o cache de bibliotecas vinculadas e consertará (esperançosamente) suas bibliotecas.

Claro, isso só funcionará se você realmente tiver a biblioteca /usr/lib/libGL.so.1 instalada:

ls -l /usr/lib/x86_64-linux-gnu/libGLU.so.1
lrwxrwxrwx 1 root root 15 sep 18 14:03 /usr/lib/x86_64-linux-gnu/libGLU.so.1 -> libGLU.so.1.3.1
dpkg -S libGL.so.1
libgl1-mesa-glx:i386: /usr/lib/i386-linux-gnu/mesa/libGL.so.1
libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
libgl1-mesa-glx:i386: /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0

(o meu é 64bits é por isso que a diferença.)

    
por 03.10.2013 / 17:34