Olc*_*taş 11 64-bit nvidia shared-library steam 12.10
安装 Nvidia 驱动程序后,当我尝试运行 Steam 时出现此错误:
steam: error while loading shared libraries: libGL.so.1: wrong ELF class: ELFCLASS64
Run Code Online (Sandbox Code Playgroud)
我发现了这个问题和建议安装的答案之一:
sudo apt-get install libgl1-mesa-glx:i386
Run Code Online (Sandbox Code Playgroud)
我已经安装了libgl1-mesa-glx:i386。比我发现这个。它建议创建一个到 32 位 libGL 的符号链接。怎么能这样?你有什么其他的建议?
小智 11
在64位的系统中,这个问题是由引起/usr/lib较早的是LD_LIBRARY_PATH比/usr/lib32。Steam 尝试了 64 位库并抱怨,没有进一步查看。
但是可以通过 in 修复它,~/Steam/steam.sh但是每次运行 Steam 时,该文件似乎都会恢复到原始版本。
我通过创建一个执行此操作的脚本来修复它:
#!/bin/bash
export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH
steam $*
Run Code Online (Sandbox Code Playgroud)
这预先添加/usr/lib32到库路径,然后启动蒸汽(使用脚本的原始参数)。现在/usr/lib32在之前的路径中找到了/usr/lib,steam就可以成功使用32位的库了。
您可能还想添加该行
export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
to /usr/bin/steam,它会有同样的效果,只要你在最后一行之前添加它。您需要 sudo 来编辑/usr/lib/steam.
/usr/bin/steamsteam更新时很可能会被覆盖。我使用后一种方法,同时保留脚本作为备份。这样,如果/usr/bin/steam被覆盖,我可以简单地从脚本中再次复制粘贴该行来修复它。
小智 7
通过添加/usr/lib32到新文件,在带有 nVidia 319.17 驱动程序的 raring ringtail (xubuntu 13.04) 中修复了此问题:
$ sudo nano /etc/ld.so.conf.d/lib32.conf
Run Code Online (Sandbox Code Playgroud)
然后运行:
$ sudo ldconfig
Run Code Online (Sandbox Code Playgroud)
由于文件/etc/ld.so.conf包含include /etc/ld.so.conf.d/*.conf,该目录中具有扩展名的任何文件.conf都会被解析。