Ubuntu 16.04 Steam只能从终端运行

在从Ubuntu 14.04升级到Ubuntu 16.04后,我不得不擦拭我的系统并重新开始。 这次我决定采用CPU密集度更低的桌面环境并安装Lubuntu 16.04-1。

我的问题:当我从菜单快捷方式运行Steam时,它表现得像什么都没做。 但它确实出现在任务管理器中。 如果我只是在终端输入steam ,我得到以下内容。

 michael@michael-HP-Pavilion-dm1-Notebook-PC:~$ steam Running Steam on ubuntu 16.04 64-bit STEAM_RUNTIME is enabled automatically grep: symbol lookup error: grep: undefined symbol: pcre_jit_stack_alloc grep: symbol lookup error: grep: undefined symbol: pcre_jit_stack_alloc /bin/bash: /home/michael/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libtinfo.so.5: no version information available (required by /bin/bash) grep: symbol lookup error: grep: undefined symbol: pcre_jit_stack_alloc awk: /home/michael/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libtinfo.so.5: no version information available (required by /lib/x86_64-linux-gnu/libreadline.so.6) Installing breakpad exception handler for appid(steam)/version(1468023329) libGL error: unable to load driver: r600_dri.so libGL error: driver pointer missing libGL error: failed to load driver: r600 libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast 

然后没有任何事情发生,包括蒸汽没有出现在任务管理器中。 现在我找到了命令。

 LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam 

这确实运行了Steam,但它并不是我眼中的真正解决方案。 我该如何解决?

由于您有一个命令( LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam )以正确启动它,修改.desktop文件以修复菜单图标,以便单击它运行该命令。 做:

 cd /usr/share/applications 

然后键入ls以查找Steam的.desktop文件。 这里我假设它叫做steam.desktop ,所以检查一下,如有必要,请更正下面的命令。 制作备份副本

 sudo cp steam.desktop steam-bak 

(如果需要,通过执行mv steam-bak steam.desktop恢复备份)编辑原始文件:

 sudo nano steam.desktop 

找到启动Exec=的第一行(你可以使用ctrl + w来搜索nano)并编辑该行,使其显示:

 Exec=bash -c "LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam" 

保存文件并退出( ctrl + o然后输入然后ctrl + x

现在单击菜单中的蒸汽图标以启动

别人注意:如果命令LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam不适合你,请尝试更改DISPLAY=:0以匹配您的环境。 首先echo $DISPLAY ,如果输出为:0.0 ,则在steam launch命令中代替DISPLAY=:0 ,输入DISPLAY=:0.0


另一个可能的解决方法:检查系统设置>软件和更新>附加驱动程序并启用最新的专有驱动程序(对另一个显然适用于该post的OP的post的评论建议)


这些错误是由与Steam捆绑在一起的过时驱动程序和库引起的。 这可以通过禁用它们来修复,以便Steam使用系统文件(这就是设置LD_PRELOAD原因)。 您可以通过重命名来禁用抛出错误的文件:

 mv /home/$USER/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libtinfo.so.5{,.disabled} 

(可能有几个库需要执行此操作,并且您可能需要在任何更新/重新同步后重复)在任何情况下,它不是您的系统的问题,而是使用Steam。

有关综合信息,请参阅
关于Steam故障排除的Epic Arch wikipost