Ubuntu 16.04 Steam 只能从终端运行

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

然后什么都没发生,包括 steam 没有出现在任务管理器中。现在我找到了命令。

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

这确实可以运行 Steam,但在我看来这不是真正的解决方案。我该如何修复它?

答案1

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

cd /usr/share/applications

然后键入ls以查找.desktopSteam 文件。我假设它的名称为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然后enter然后ctrl+ x

现在点击菜单中的 steam 图标来启动

提醒其他人:如果该命令LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam对您不起作用,请尝试更改DISPLAY=:0以匹配您的环境。首先执行echo $DISPLAY,如果输出为:0.0,则DISPLAY=:0在 steam 启动命令中输入DISPLAY=:0.0


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


这些错误是由 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 的问题。

详细信息请参阅:
Epic Arch wiki 帖子关于 Steam 故障排除

相关内容