web-dev-qa-db-ja.com

「共有ライブラリのロード中のエラー:libgl.so.1」を修正する方法

このコマンドを実行した後dpkg -l |grep ^rc|awk '{print $2}' |Sudo xargs dpkg -P

Smplayer、cairo-dock、unity-2d-Shellおよびamdconfigを開いているときに問題が発生しました。「共有ライブラリの読み込み中にエラーが発生しました:libGL.so.1:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません」。たぶん、同じ問題を解決する他のアプリケーションがあります。

しかし、私はファイルを持っています

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

だが

ldd $(which smplayer)|grep libGL  

何も得られませんでした。

4
Ziu

@Braiamはその場にいます。また、locateを含むファイルを見つけても、そのファイルが存在することを意味するわけではないことも知っておく必要があります。 locateは、時々更新されるデータベースを使用します。実際のファイルsystsemは検索されませんが、データベースは検索されます。 updatedbを実行して、検索する前にデータベースを更新するか、-eフラグを使用できます。

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

例えば:

$ 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
2
terdon

複数のパッケージを一度にアンインストールしたときに、リンクされたライブラリの一部が壊れたことが原因である可能性があります。何が起こるかを知るために、事前にdpkg -l |grep ^rc|awk '{print $2}'を実行する必要があります。幸い、これはSudo ldconfigを使用して解決できます。これにより、リンクされたライブラリキャッシュが再作成され、(うまくいけば)ライブラリが修正されます。

もちろん、これは実際に/usr/lib/libGL.so.1ライブラリがインストールされている場合にのみ機能します。

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

(私のものは64ビットであるため、違いがあります。)

3
Braiam