
Depois de executar este comandodpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
Eu tive o problema ao abrir smplayer, cairo-dock, unity-2d-shell e amdconfig, "erro ao carregar bibliotecas compartilhadas: libGL.so.1: não é possível abrir o arquivo de objeto compartilhado: esse arquivo ou diretório não existe". Talvez existam outros aplicativos que encontrem o 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 tenho nada.
Responder1
@Braiam está certo. 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. Ele não pesquisa o sistema de arquivos real, mas sim o banco de dados. Você pode executar updatedb
para atualizar o banco de dados antes de pesquisar ou usar o -e
sinalizador:
-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
Responder2
Provavelmente é porque algumas bibliotecas vinculadas foram quebradas quando você desinstalou vários pacotes de uma vez. Você deveria ter corrido dpkg -l |grep ^rc|awk '{print $2}'
antes para saber o que vai acontecer. Felizmente isso pode ser resolvido usando sudo ldconfig
. Isso recria o cache das bibliotecas vinculadas e (espero) consertará suas bibliotecas.
Claro, isso só funcionará se você realmente tiver a /usr/lib/libGL.so.1
biblioteca 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 é de 64 bits, por isso a diferença.)