
Después de ejecutar este comandodpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
Tuve el problema al abrir smplayer, cairo-dock, unity-2d-shell y amdconfig, "error al cargar bibliotecas compartidas: libGL.so.1: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio". Quizás haya otras aplicaciones que resuelvan el mismo problema.
pero tengo el archivo
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
Pero
ldd $(which smplayer)|grep libGL
no tengo nada.
Respuesta1
@Braiam da en el clavo. También debes saber que encontrar un archivo locate
no significa que exista. locate
utiliza una base de datos que se actualiza de vez en cuando. No busca en el sistema de archivos real sino en la base de datos. Puede ejecutar updatedb
para actualizar la base de datos antes de buscar o usar la -e
bandera:
-e, --existing
Print only entries that refer to files existing at the time locate is run.
Por ejemplo:
$ 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
Respuesta2
Probablemente se deba a que algunas bibliotecas vinculadas se dañaron al desinstalar varios paquetes a la vez. Deberías haber corrido dpkg -l |grep ^rc|awk '{print $2}'
de antemano para saber qué pasará. Por suerte, esto se puede solucionar usando sudo ldconfig
. Esto recrea el caché de las bibliotecas vinculadas y (con suerte) arreglará sus bibliotecas.
Por supuesto, eso sólo funcionará si realmente tienes la /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
(El mío es de 64 bits, por eso la diferencia).