我正在尝试设置新的 Linux 机器,主要用于工作,下班后玩玩轻游戏。由于工作原因,我需要 Wine 来运行一些 Windows 专用软件。但是同时安装 Steam 和 Wine 会导致 Steam 无法启动。
我已经能够确定罪魁祸首是 libdbus-1-3:i386 软件包,wine 会将其作为 32 位依赖项之一进行安装。安装该软件包后,Steam 会在启动时崩溃。
我认为其原因是:
- steam 使用自己的本地 32 位库进行 dbus 操作,但如果系统中存在全局版本,则优先使用全局版本,或者
- steam 没有本地 32 位 dbus 库,但如果全局安装了 32 位 dbus,则优先使用 64 位 dbus,或者
- 32 位 dbus 库的安装会在某种程度上影响 dbus-daemon 的工作。
到目前为止,我已经尝试过以下操作:
- 从 ubuntu repo 安装 wine-stable;
- 从 ubuntu repo 安装 wine-develop;
- 从 wine ppa 安装 wine;
- 从 ppa 安装 wine-staging;
- 安装 wine 后重新安装 steam;
- 仅删除 libdbus-1-3:i386,我中止了此操作,因为 apt 想要随之删除 wine32 和 libwine 包。
因此,感觉我已经尝试了我所知道的所有新手解决方案,我来这里寻求帮助和/或灵感。
答案1
从Debian 错误报告关于此行为:
这是 Steam 中的一个错误,我认为它特别出现在它使用的 SDL 2.0.6 的捆绑副本中。它会以这种方式在所有非 Debian 衍生产品上崩溃。在 Debian 衍生产品上,直到最近,Debian 特定的补丁将对未通过先决条件检查的响应降级为警告(这是 11 年前“暂时”完成的)。在运行 Steam 之前“export DBUS_FATAL_WARNINGS=0”将执行与该补丁相同的操作。这将避免崩溃,而只是发送垃圾邮件警告,除非您不幸遇到未初始化内存的内容,在这种情况下它仍可能崩溃。
因此,在 Steam 端修复此问题之前,最简单的解决方法是运行:
export DBUS_FATAL_WARNINGS=0
在从命令行运行 Steam 之前。或者,您可以设置此变量永久保留您的会话。