问题
在运行各种软件(尤其是Steam和Yenka)时,遇到类似以下错误:error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory
库(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
为什么软件看不到普通的mesa库,为什么Yenka拒绝运行nvidia当前库?
答案1
安装了nvidia驱动程序后,skype寻找nvidia软件包提供的i386库。因为不存在,所以使用mesa提供的i libGL.so.1是可以的。
经过测试(使用nvidia-325的ubuntu-gnome raring)和(使用nvidia-319的(ubuntu-gnome saucy,使用nvidia-319)),我们可以通过以下方法解决此问题:update-alternatives --display i386-linux-gnu_gl