Steam
厂商: Valve Software
开发者: Valve Software
许可: Steam EULA
网站: http://steampowered.com
Steam 是一款软件分发服务。
- 在线游戏商店
- 自动更新
- 游戏内成就
- 同步存档和截图功能
- 查看正在玩游戏的朋友
- 即时通讯和语音聊天
- 通过游戏流远程游戏
安装
openSUSE 仓库
可以通过 YaST 软件或 zypper 从 openSUSE 标准仓库安装最新版本的 Steam。
如果您遇到缺少依赖项的问题,请 提交错误报告或将其贡献到steam.spec文件,通过在 OBS 中分支 steam 包。
sudo zypper install steamFlatpak
也可以使用 Flatpak 安装 Steam。
1. 安装 flatpak
sudo zypper install flatpaksudo zypper install grub2-compat-ia32 # 确保 32 位sudo reboot # 重新启动是必要的,以便在内核中启用 32 位执行2. 之后,如果希望以用户身份(而不是以 root 身份)安装 Steam,请运行
flatpak install --user --from https://flathub.org/repo/appstream/com.valvesoftware.Steam.flatpakref3. 或者,如果您希望以系统范围的方式安装 Steam,请运行
sudo flatpak install --from https://flathub.org/repo/appstream/com.valvesoftware.Steam.flatpakref应用程序菜单中应该会出现一个桌面启动器,如果未出现,请重新登录,它应该会出现。如果希望从命令行启动 Steam,请运行
flatpak run com.valvesoftware.SteamSteamCMD
SteamCMD 是一个命令行替代方案,适用于服务器和不想使用图形化客户端的用户。有关更多信息,请参阅 官方文档。
运行 Windows 游戏
大多数游戏都是为 Windows 开发的。要在 Linux 上运行它们,您需要一个兼容层,例如 Wine。幸运的是,Steam 内置了 Proton,这是 Wine 的一个分支,用于支持 openSUSE 上的 Windows 游戏。但是,在玩这些游戏之前,您仍然需要做一些事情。
首先,您需要 安装 Vulkan 驱动程序。目前,只有 Intel 和 AMD 驱动程序包含在 openSUSE 仓库中。NVIDIA 驱动程序必须通过单独的仓库安装,如 此处所述。
为了运行一些具有非凡 3D 图形效果的 Windows 游戏,我们还需要 DXVK(包含在 Proton 中),它可以将 MS DirectX 转换为开源 Vulkan。不幸的是,DXVK 目前仅支持 AMD 和 NVIDIA GPU。因此,如果您正在购买 PC,请确保选择正确的 GPU。
之后,您需要启动 Steam,打开设置,并启用 Steam Play(Proton)兼容性工具。
常见问题解答
- Steam 是免费的吗?
是的,Valve Software 允许通过他们的 EULA 安装他们的免费软件 Steam 客户端,他们称之为“有限安装许可”,无需任何费用。
如果您在 Steam 商店购买游戏,则受其 订阅协议约束。从技术上讲,您不拥有您购买的游戏,而是以无限的时间租用它们。这意味着它们绑定到您的帐户,您可以随时随地安装它们,但不能出售它们。DRM 还需要互联网连接才能首次激活它们。有些游戏甚至需要持续的互联网连接。
免费游戏,例如 Team Fortress 2,被宣传为“免费游戏”。它们通过游戏内购买附加物品来获利。
- 如何知道这款游戏是否可以在 Linux 上运行?
Valve 商店有一个 Linux 部分:http://store.steampowered.com/browse/linux/ 他们还在与 Linux 兼容的游戏上添加了 steam-os 图标。
除了原生于 Linux 的游戏外,还可以通过 Steam Play 运行一些非原生于 Linux 的游戏。对于许多游戏,用户会在 protondb 上编写兼容性报告。
- 游戏在 Linux 上运行得如何?
Valve 在 Steam 上的游戏是原生移植。它们将比使用 Wine 解决方法(有关 Steam 在 Wine 上的更多信息,请参阅下文)运行得更快更流畅。Valve 还声称,缺乏 DirectX 开销也提高了性能。[1] 如果您启动额外的 XServer 来运行 OpenGL 游戏,它将进一步提高您的 FPS,因为桌面环境和合成效果不会减慢您的速度。如果您正在运行 KDE,请按 ALT+SHIFT+F12 暂时禁用 KWin 合成器。这将提高窗口模式下 OpenGL 游戏的视频性能。
Steam-Controller
Steam Controller 是 Valve 出售的手柄,也可以在 Linux 上使用。
安装
您需要安装最新版本的 Steam,之后应该自动安装 steam-devices 包。确保应该访问 Steam 控制器的用户位于 games 组中。安装后,您可能需要注销并重新登录。
Steam Play
Steam Play 的目标是使非原生于 Linux 的游戏像在 Windows 上一样运行。有些游戏甚至可以通过 Steam Play 获得更好的控制器支持,而它们在 Windows 上运行则不然。Steam Play 使用定制版本的 Wine,称为 Proton 来启动游戏。这不需要用户在他们的 PC 上安装 Wine。
Steam Play 有一个相对较小的白名单游戏列表,但只有经过验证可以像在 Windows 上一样运行的游戏才会被列入白名单。随着错误修复和更多测试,更多的游戏也会被添加到白名单中。
Steam Play 还具有运行非白名单游戏的选项,但这些游戏更容易出现小问题或无法在 Linux 上运行。对于非白名单游戏,Steam Play 必须在 Steam 的设置对话框中启用,通过勾选“为所有其他标题启用 Steam Play”复选框。 ProtonDB 是一个粉丝制作的网站,允许用户查看游戏使用 Steam Play 运行得如何。用户还可以提交他们测试过的游戏的报告,以评估游戏使用 Steam Play 运行得如何。
要获取日志,请将启动选项设置为 PROTON_LOG=1 %command%,启动游戏后,它将在您的 $HOME 中创建一个日志文件。此外,请查看 GitHub 上的问题以获取有关特定游戏的帮助。
Steam In-Home Streaming
如果您在使用 In-home streaming 时遇到问题,请确保已启用防火墙规则。
firewall-cmd --zone=public --add-service=steam-streaming --permanentfirewall-cmd --zone=public --add-service=steam-streaming故障排除
获取 Flatpak 版本的 proton 日志
Flatpak 版本的 Steam 将 proton 的日志文件存储在 ~/.var/app/com.valvesoftware.Steam/ 内部,而不是通常的 ~/,如果您以以下方式运行游戏
PROTON_LOG=1 %command%
错误:缺少 libc.so.6 或 ld-linux.so.2
如果您在启动 32 位应用程序(例如 Steam、Wine 或 VirtualBox)时遇到如下错误,则表明内核中未启用 32 位二进制文件执行
/usr/bin/ldd: line 159: /lib/ld-linux.so.2: cannot execute binary file: Exec format error not a dynamic executable
或者
You are missing the following 32-bit libraries, and Steam may not run: libc.so.6
这通常发生在系统默认禁用 32 位 x86 (IA32) 支持的情况下,例如 openSUSE Leap 16.0 及更高版本。
可以通过以下方式启用 32 位支持:
sudo update-bootloader --add-option ia32_emulation=1 sudo update-bootloader --config
重启。
Steam 安装程序启动错误 (openSUSE Leap 15)
安装 Steam 安装程序后,出现错误
symbol lookup error: /usr/lib/i386-linux-gnu/libxcb-dri3.so.0: undefined symbol: xcb_send_request_with_fds
请参阅:https://github.com/ValveSoftware/steam-for-linux/issues/5249
工单中提出的解决方法有效,只需以这种方式启动 Steam
LIBGL_DRI3_DISABLE=1 steamAMD 图形芯片组且无法游戏
一些用户报告说,为 AMD 图形芯片组安装了 Free radeon 后,根本无法游戏:在选择并单击游戏后,游戏将不会启动。为了可能解决此问题,请搜索并使用一键安装适用于您显卡的适当 AMD 专有驱动程序:SDB:Radeon
AMD radeonsi_dri.so 开源驱动程序
如果 Steam 无法加载并抱怨缺少 radeonsi_dri.so。
使用以下命令运行 Steam
/usr/bin/steam %U加载 Steam 时不使用本地运行时以避免崩溃或游戏没有声音
一些用户报告说,Steam 客户端的较新更新暂时需要使用以下命令启动以避免崩溃。 此外,用户报告视频片段和游戏中的声音丢失。 尝试不使用本地运行时加载 Steam 以解决此问题
不使用本地运行时加载 Steam 意味着不加载 Steam 在软件包中提供的预捆绑库。 这些可能是旧版本,其中包含系统中已解决的错误。 启动时,Steam 将尝试使用安装在系统中的库。
尝试不使用本地运行时加载 Steam 时 Steam 启动失败
这可能是由于缺少 32 位库,例如在 64 位系统上。 转到目录~/.local/share/Steam/ubuntu12_32并通过执行以下命令来调查缺少的库
cd ~/.local/share/Steam/ubuntu12_32command=LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH}" ldd $(file *|sed '/ELF/!d;s/:.*//g')|grep 'not found'|sort|uniq(来源:https://wiki.archlinux.org.cn/index.php/Steam#Using_native_runtime_.3D)
示例输出
libdbus-glib-1.so.2 => not found libnm-glib.so.4 => not found libnm-util.so.2 => not found
或
LD_PRELOAD=/usr/lib32/libudev.so.1 STEAM_RUNTIME=0 steam(来源:https://wiki.archlinux.org.cn/index.php/Steam/Troubleshooting)
示例输出
you are missing the following 32-bit libraries, and Steam may not run: libXtst.so.6 libva.so.1 libvdpau.so.1 libva.so.1 libva-x11.so.1
使用 YaST - 软件管理查找这些缺少的依赖项,选择“RPM 提供”,搜索缺少的文件并安装 32 位版本。
例如,您可以使用
sudo zypper in libvdpau_radeonsi-32bit (for radeon cards) libXtst6-32bit libvdpau_va_gl1-32bit libva-glx2-32bit如果您安装了 32 位库后仍然遇到此问题,请确保您的用户是视频、游戏、音频和 cd 组的成员。 这可以通过 YaST -> 用户和组管理 -> 编辑 然后选择“详细信息”选项卡来完成。
即使使用 STEAM_RUNTIME=0,游戏仍然崩溃
如果您遇到游戏似乎在启动时崩溃的问题,并且无法弄清楚问题是什么,请查看以下两个命令的输出
gdb /path/to/executable (at the prompt, type) run
在我的例子中,我收到以下错误“terminate called after throwing an instance of 'CFileException'”。 解决方案是将其放在 ext4 分区上,然后尝试运行游戏。
请参阅 https://wiki.archlinux.org.cn/index.php/Steam#Some_games_fail_to_start
没有声音
一些用户报告说在他们的 Steam 游戏中听不到任何声音。
按照 本指南,他们尝试
rm -fv /var/lib/dbus/machine-id然后
ln -sv /etc/machine-id /var/lib/dbus/machine-id它说仅在文件不存在时才创建链接。 它对我来说确实存在,但将其替换为符号链接修复了我的声音问题。
一些游戏可能会尝试直接与 alsa 通信,而不是通过 pulse audio。 虽然较新的系统不应该需要这样做,但可以通过安装 alsa-plugins-pulse 来修复此问题。

