这最初是Ubuntu 15.04 / 15.10上Steam的问题。Steam捆绑了旧库并与台面驱动程序发生冲突,这也是为什么封闭驱动程序看不到此问题的原因。更新:也可能是您缺少了一些东西。请参阅其他mchid的答案。
Steam的github中有一个未解决的错误。
当前的解决方法是删除旧的lib版本,至少要等到Valve在其启动脚本或类似的问题中解决了该问题为止。
因此,请输入以下文件夹并执行此操作(x86_64
如果只有32位系统,请忽略该文件夹):
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
如果上述目录有问题,则应尝试以下操作:
有些人有.steam/steam/ubuntu12_32
,其他人只有.steam/ubuntu12_32
。如果没有这些文件夹,请通过检查Steam在何处查找用户个人资料来找到正确的位置:
$ fgrep config= /usr/games/steam
config=$HOME/.steam
使用它来找到您的库位置:
[config value] + /ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
|
\-> $HOME/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
它对我有用...但是请注意,如果某些游戏需要Steam运行时中的旧lib,则它可能会崩溃(这就是Valve应该解决此问题的原因)
编辑2015-08-22:
由于Steam现在在$HOME/.steam/root
中始终具有指向正确的Steam安装目录的链接,因此该命令应适用于所有人,并且更容易进行快速修复:
find $HOME/.steam/root/ubuntu12_32/steam-runtime/*/usr/lib/ -name "libstdc++.so.6" -exec mv "{}" "{}.bak" \; -print
另外,请记住,在每个Steam运行时更新中,您可能都需要运行此更新。
编辑2016-02-16:
只需执行以下操作,即可查看下面的mchid回复:
sudo apt-get install libgl1-mesa-dri libgl1-mesa-dri:i386
可能足以解决此问题。
编辑2016-10-23:
对于ubuntu 16.10,该命令已更新,可以删除更多破坏台面驱动程序的文件,因此此新命令应该可以使用:
find $HOME/.steam/root/ubuntu12_32/steam-runtime/*/usr/lib/ \( -name "libstdc++.so.6" -o -name "libgpg-error.so.0" -o -name "libxcb.so.1" -o -name "libgcc_s.so.1" \) -exec mv "{}" "{}.bak" \; -print
对于NVIDIA封闭源驱动程序,请参见下面的Vincent答复。
编辑2017-01-08:
可能是最终编辑,即使不是全部,最新的Steam linux更新也应该可以解决大多数问题!最后!:D
编辑2017-08-03:
可悲的是,从假期回来后,发现最近的一些更新再次使人失望。因此,如果您在启动时得到此信息,请在更新下载后进行:
process 23148: arguments to dbus_connection_ref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file dbus-connection.c line 2688.
然后蒸汽崩溃,然后您遇到了此 bug,报告为非致命错误,但确实使同一发行版的蒸汽崩溃。解决方法是这样的:
ln -s ${HOME}/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libdbus-1.so.3 ${HOME}/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libdbus-1.so.3
祝好运