升级到 Ubuntu 16.04 后,Steam 无法启动。当我从命令行执行它时,我收到以下错误:
$ 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
grep: symbol lookup error: grep: undefined symbol: pcre_jit_stack_alloc
Installing breakpad exception handler for appid(steam)/version(1459463254)
答案1
我从 14.04 LTS 升级到 16.04 LTS,但也无法启动 Steam。它启动了(我的意思是,“steam”继续运行),但几秒钟后什么也没发生。
为了我,我最终找到的解决方法是从命令行运行 Steam:
LD_PRELOAD='/usr/$LIB/libstdc++.so.6' steam
以下是非必要信息。
Steam 本质上提供了一个“迷你发行版”,称为 Steam Runtime,但它目前还没有完成完整的工作,因此它在某种程度上与系统 C++ 标准库和/或其他库发生冲突。在我的实验中,我还抱怨系统 libreadline6 <-> Steam 运行时 libtinfo5。在我手动解压 Steam 目录下的 steam 运行时 tarball 包以覆盖我之前的内容后,它变成了如本问题 (pcre_jit_stack_alloc) 中所述的样子。
有趣的是,在我找到上述解决方案之前,我能够启动 Steam,因此它通过 export STEAM_RUNTIME=0 暂时禁用 Steam Runtime 来为自己下载升级。Steam 本身无法运行,但这是我向前迈出的第一步。我尝试安装所需 32 位库的系统等效程序,但没有完成/使其运行。
答案2
对我来说,每次执行以下命令都有效。
LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1 /$LIB/libgpg-error.so.0' steam