このコマンドを実行した後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
何も得られませんでした。
@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
複数のパッケージを一度にアンインストールしたときに、リンクされたライブラリの一部が壊れたことが原因である可能性があります。何が起こるかを知るために、事前に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ビットであるため、違いがあります。)