加载 libGL.so.1 时出错

50 nvidia steam libraries nvidia-optimus bumblebee

在尝试运行各种软件(特别是 Steam 和 Yenka)时,我遇到了类似的错误: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

我正在运行 64 位系统,带有 NVidia Optimus 卡(我对某些需要专用显卡的仅 Windows 软件进行双重引导)。我安装了 bumblebee,我使用的是 nvidia-current 驱动程序,而不是按照推荐从 NVidia 下载的驱动程序。

库 (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
Run Code Online (Sandbox Code Playgroud)

显然正在加载具有该名称的库,但它们位于 中/usr/lib/x86_64-linux-gnu,但是已安装的软件似乎无法“看到”它。对于 Steam,使用 optirun 运行它会使其工作,但对于 Yenka 则不是这种情况。我假设 optirun 会导致使用存储在的库/usr/lib32/nvidia-current,这允许 Steam 运行,所以我无法理解为什么 Yenka 不会运行。

谁能解释为什么软件看不到普通的台面库,以及为什么 Yenka 拒绝使用 nvidia-current 库运行?

Qas*_*sim 52

安装Skype后我遇到了同样的问题......所以你可以做任何事情来解决这个错误..

第一个是通过以下命令运行应用程序......例如我正在运行Skype......

LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1 skype
Run Code Online (Sandbox Code Playgroud)

来源

第二,我所做的

sudo nano /etc/ld.so.conf.d/skype.conf
Run Code Online (Sandbox Code Playgroud)

并在其中添加以下行

/usr/lib/i386-linux-gnu/mesa/
Run Code Online (Sandbox Code Playgroud)

保存并退出

最后运行

sudo ldconfig -v
Run Code Online (Sandbox Code Playgroud)

我希望这会像我一样修复你的libGL.so.1错误

你也可以找到 libGL.so.1

   find / -name libGL.so.1
Run Code Online (Sandbox Code Playgroud)


小智 39

安装了 nvidia 驱动程序后,Skype 正在寻找 nvidia 包提供的 i386 库。既然不存在,那么使用mesa提供的i386 libGL.so.1就可以了。

在 (ubuntu-gnome raring,使用 nvidia-325) 和 (ubuntu-gnome saucy,使用 nvidia-319) 上进行测试,我们能够通过以下方式解决这个问题:

update-alternatives --display i386-linux-gnu_gl_conf
Run Code Online (Sandbox Code Playgroud)

这将向您显示可用的选项。

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'
Run Code Online (Sandbox Code Playgroud)

因此,请执行以下操作:

sudo update-alternatives --config i386-linux-gnu_gl_conf
Run Code Online (Sandbox Code Playgroud)

然后选择最佳替代方案(我选择了 i386-linux-gnu/mesa/ld.so.conf):在下面的输出中,替代方案 i386-linux-gnu_gl_conf 有两个选择(提供 /etc/ld.so.conf.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
Run Code Online (Sandbox Code Playgroud)

完成后,尝试运行:

sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

然后你就完成了。

  • 我有完全相同的,这工作得很好,非常感谢(Ubuntu 13.10) (2认同)

Jon*_*nna 12

此处的修复将起作用,但有一个更简单的修复。

如果skype不起作用但optirun skype确实有效,那么您可以使用以下方法修复它:

sudo apt-get install bumblebee-nvidia --reinstall
Run Code Online (Sandbox Code Playgroud)

(使用带有 AMD 卡的 Bumblebee 的人可能需要进行等效的重新安装)。

Bumblebee 会导致并修复此问题,但它应用的修复发生在安装时,当它使 libGL 库可用于集成卡以及更强大的卡时。如果在安装 Bumblebee 时尚未安装这些库,则不会发生这种情况,因此需要重新安装。它也不应该影响您的大黄蜂配置,尽管在您完成此操作后显然值得检查。

  • 它对我很有效......谢谢。Ubuntu 侏儒 14.04 (3认同)