当前位置: 首页>>技术教程>>正文


xorg – Steam 无法在 Ubuntu 16.04 上启动

, , ,

问题描述

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

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)

最佳回答

我遇到了同样的问题,我能够按照 http://ubuntuforums.org/showthread.php?t=2275526 的说明解决这个问题:

This is a problem with steam and ubuntu 15.04. Steam bundles old libs and are colliding with mesa drivers, that is also why closed drivers aren’t seeing this problem.

There is a open bug in steam github the workaround for now is to remove the old lib version, at least until valve fix the issue in their startup script or similar. So enter this folders and do this

Code:

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 

It worked for me… but please note that if some game required that old lib from the steam runtime, it may crash (that is why should be valve fixing this)

编辑:线程中的步骤已经引用自 Problem with installing Steam on Ubuntu 15.04+ ,因此如果这些说明不足以解决您的问题,您可以去那里了解更多详细信息。

次佳回答

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

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

同样在第一次更新后我不得不再次这样做,否则它仍然不会更新。

第三种回答

与其删除 libstdc++,不如先调查此错误是否是由不明确的 libGL 符号链接引起的。

请参阅我的其他答案,该答案也适用于我解决此问题 https://askubuntu.com/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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12748.html,未经允许,请勿转载。