在尝试运行各种软件(特别是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/libGL.so.304.64
的软链接存在于/usr/lib32/nvidia-current
中。
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无法运行。
有人能解释一下为什么软件看不到正常的mesa库,以及为什么Yenka拒绝使用nvidia-current库吗?