
このコマンドを実行した後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
何も得られなかった。
答え1
@Braiam はまさにその通りです。ファイルを見つけたからといって、そのファイルlocate
が存在するとは限らないことも知っておく必要があります。locate
は、時々更新されるデータベースを使用します。実際のファイル システムではなく、データベースを検索します。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
おそらく、一度に複数のパッケージをアンインストールしたときに、リンクされたライブラリの一部が壊れたことが原因です。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 ビットなので、違いがあります。)