Steam无法在Ubuntu 16.04上启动


19

重新安装后,下载了更新,但即使从终端也无法启动。这是它给出的错误消息:

Running Steam on ubuntu 16.04 32-bit  
STEAM_RUNTIME is enabled automatically  
[2016-04-25 09:12:35] Startup - updater built Mar 31 2016 19:10:48  
SteamUpdateUI: An X Error occurred  
X Error of failed request:  BadValue (integer parameter out of range for operation)

Answers:


43

我遇到了同样的问题,可以解决以下来自http://ubuntuforums.org/showthread.php?t=2275526的指示:

这是Steam和Ubuntu 15.04的问题。Steam捆绑了旧库并与台面驱动程序发生冲突,这也是为什么封闭驱动程序看不到此问题的原因。

Steam github中有一个解决的错误,目前的解决方法是删除旧的lib版本,至少要等到用其启动脚本或类似方法修复该问题为止。因此,输入此文件夹并执行此操作

码:

cd $HOME/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
mv libstdc++.so.6 libstdc++.so.6.bak
cd $HOME/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu
mv libstdc++.so.6 libstdc++.so.6.bak

它对我有用...但是请注意,如果某些游戏需要Steam运行时中的旧lib,则它可能会崩溃(这就是为什么应该对此进行修复)

编辑:该线程中的步骤已从在Ubuntu 15.04+上安装Steam的问题中引用,因此如果这些说明不足以解决您的问题,您可以去那里获取更多详细信息。


对于两个mv命令,我得到:gnu: No such file or directory。为什么?
卡斯珀

@CasperLI它们可能位于不同的目录中。尝试转到Nick的答案(askubuntu.com/a/778521/514190)的路径,然后在您喜欢的文件管理器中重命名libstdc ++。so.6。或只是找到文件:
balver

缺少来自上述评论的命令:find ~/.steam -name "libstdc++.so.6"
balver

这不适用于Ubuntu 17.10
Ray Foss,

重新启动修复它...我已关闭中的任何内容ps aux | grep steam。它必须运行其他内容。离线时似乎仍然崩溃,这真让人不知所措。
雷·福斯

5

上面的答案对我来说是正确的,尽管当我试图让Steam在16.04上运行时,文件的路径并不完全相同,我需要的路径是

~/.steam/bin/steam-runtime/i386/usr/lib/i386-linux-gnu

同样在第一次更新后,我不得不再次执行此操作,否则它仍然不会更新。


3

而不是删除libstdc ++,首先要研究此错误是否是由模糊的libGL符号链接引起的。

请参阅我对解决此问题也有用的其他答案 /ubuntu//a/903488/364084

我将在此处粘贴内容:

如果您使用的是nvidia驱动程序,有时您会看到libGL.so.1指向由mesa和nvidia提供的模糊libGL。要对此进行测试,您可以运行以下命令

$ sudo ldconfig -p | grep -i gl.so

输出如下:

    libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
    libftgl.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libftgl.so.2
    libcogl.so.20 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcogl.so.20
    libQt5OpenGL.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5
    libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
    libQtOpenGL.so.4 (libc6) => /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
    libOpenGL.so.0 (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so.0
    libOpenGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib32/nvidia-378/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so
    libGL.so (libc6) => /usr/lib32/nvidia-378/libGL.so
    libEGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so.1
    libEGL.so.1 (libc6) => /usr/lib32/nvidia-378/libEGL.so.1
    libEGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so
    libEGL.so (libc6) => /usr/lib32/nvidia-378/libEGL.so

现在,我只需要删除由mesa提供的库即可,一切运行正常。

$ sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1

0

balver的解决方案有效,但是目录与发布的目录略有不同。这是我键入的命令序列:

cd $HOME/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
mv libstdc++.so.6 libstdc++.so.6.bak
cd $HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu
mv libstdc++.so.6 libstdc++.so.6.bak
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.