web-dev-qa-db-ja.com

libGL.so.1の読み込みエラー

さまざまなソフトウェア(特にSteamとYenka)を実行しようとすると、次のようなエラーに遭遇しました:error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

NVidia Optimusカードを搭載した64ビットシステムを実行しています(専用のグラフィックカードを必要とする特定のWindows専用ソフトウェアのデュアルブート)。バンブルビーをインストールしましたが、推奨どおりNVidiaからダウンロードしたドライバーではなく、nvidia-currentドライバーを使用しています。

ライブラリ(libGL.so.1)は/usr/libの最上位ディレクトリには存在しませんが、/usr/lib32/nvidia-currentへのソフトリンクとして/usr/lib32/nvidia-current/libGL.so.304.64に存在します。

Ldconfig -pの出力のセクション:

libGL.so.1 (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
libGL.so (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/libGL.so
libGL.so (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so

明らかにその名前のライブラリがロードされていますが、それらは/usr/lib/x86_64-linux-gnuにありますが、インストールされたソフトウェアはそれを「見る」ことができないようです。 Steamの場合、optirunで実行すると動作しますが、Yenkaの場合はそうではありません。 optirunによって/usr/lib32/nvidia-currentに格納されているライブラリが使用され、Steamが実行できるようになるため、Yenkaが実行されない理由がわかりません。

ソフトウェアが通常のメサライブラリを表示できない理由、およびYenkaがnvidia-currentライブラリでの実行を拒否する理由を説明できますか?

48
p0llard

Nvidiaドライバーをインストールすると、skypeはnvidiaパッケージで提供されるi386 libを探します。これは存在しないため、mesaが提供するi386 libGL.so.1を使用しても構いません。

(ubuntu-gnome raring、nvidia-325を使用)および(ubuntu-gnome saucy、nvidia-319を使用)でテストした結果、次のように修正できました。

update-alternatives --display i386-linux-gnu_gl_conf

これにより、使用可能なオプションが表示されます。

i386-linux-gnu_gl_conf - auto mode
  link currently points to /usr/lib/nvidia-325/alt_ld.so.conf
/usr/lib/i386-linux-gnu/mesa/ld.so.conf - priority 500
  slave i386-linux-gnu_xorg_extra_modules: /usr/lib/i386-linux-gnu/xorg/x11-extra-modules
/usr/lib/nvidia-325/alt_ld.so.conf - priority 8602
Current 'best' version is '/usr/lib/nvidia-325/alt_ld.so.conf'

そのため、以下を実行します。

Sudo update-alternatives --config i386-linux-gnu_gl_conf

次に、最適な代替手段を選択します(i386-linux-gnu/mesa/ld.so.confを選択しました)。以下の出力には、代替i386-linux-gnu_gl_confの2つの選択肢があります(/etc/ld.so.confを提供します。 d/i386-linux-gnu_GL.conf)。

  Selection    Path                                     Priority   Status
------------------------------------------------------------
* 0            /usr/lib/nvidia-325/alt_ld.so.conf        8602      auto mode
  1            /usr/lib/i386-linux-gnu/mesa/ld.so.conf   500       manual mode
  2            /usr/lib/nvidia-325/alt_ld.so.conf        8602      manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/i386-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode

それが完了したら、実行してみてください:

Sudo ldconfig

これで完了です。

40
eurythmia

Skypeをインストールした後も同じ問題が発生します。そのため、このエラーを修正するためにどちらかを行うことができます。

最初のコマンドは、次のコマンドによってアプリケーションを実行します。たとえば、skypeを実行しています。

LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1 skype

S O U R C E

2番目に私がやったこと

Sudo nano /etc/ld.so.conf.d/skype.conf

そして次の行を追加します

/usr/lib/i386-linux-gnu/mesa/

保存して終了

そして最後に走る

Sudo ldconfig -v

これがあなたのlibGL.so.1エラーを修正したことを願っています

libGL.so.1も見つけることができます

   find / -name libGL.so.1
51
Qasim

ここでの修正は機能しますが、もっと簡単な修正があります。

skypeは機能しないが、optirun skypeは機能する場合は、次の方法で修正できます。

Sudo apt-get install bumblebee-nvidia --reinstall

(AMDカードでBumblebeeを使用しているユーザーは、同等の再インストールが必要になる場合があります)。

Bumblebeeはこの問題の原因と修正の両方を行いますが、libGLライブラリを統合カードおよびより強力なカードで利用できるようにするときに、インストール時に適用されます。これは、Bumblebeeをインストールしたときにそれらのライブラリがまだインストールされていなかった場合には発生しないため、再インストールが必要です。マルハナバチの設定にも影響はありませんが、これを行った後は明らかに確認する価値があります。

12
Jon Hanna

デスクトップエントリを編集します。

Sudo nano /usr/share/applications/skype.desktop

Execを次のように変更します。

Exec=env Pulse_LATENCY_MSEC=60 LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1 skype %U

これが実行されます:

LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1

ランチャー/デスクトップエントリを使用して起動すると、Skypeを実行する前に。

アプリケーションランチャーを使用して起動する限り、その後は正常に動作するはずです。

2
hazmat

これが明確化に役立つかどうかはわかりませんが、skypeとlibGL.so.1で同じ問題が発生しました。また、オプティマスカードとマルハナバチで13.04を実行しています。

Optirunなしでskypeを実行すると問題が発生しましたが、問題なく動作しました。毎回optirunで実行するようにデスクトップファイルを変更しました。一定!

1
user191532

同様の問題があり、64ビットシステムに32ビットライブラリをインストールすることで解決しました:apt-get install ia32-libs

1
Matt

公式のSteamページから最新バージョンをダウンロードします。ターミナルから必要なものをダウンロードします(必要な場合)。まだ行っていない場合は、bumblebee ppaを追加します。

Sudo add-apt-repository ppa:bumblebee/stable

次のコマンドで更新します。

Sudo apt-get update

virtualglをインストールします(Steamでlibgl.so.1エラーを解決しました)

Sudo apt-get install virtualgl
0
Addae Dans

試してください:

Sudo apt-get install libgl1-mesa-glx-lts-utopic:i386
0
Donkey