Steam 依賴許多 32-bit lib,鑑於此我沒有在 host 使用 pacman 安裝它。flatpak 等第三方包管理器由於潔癖,同樣沒有考慮。此時,systemd-nspawn 便成爲了很好的選擇。
創建 Container
1 | pacman -Syu arch-install-scripts |
配置 Container
允許訪問 getty
編輯 /var/lib/machines/arch-nspawn/etc/securetty
,加入 pts/0
至 pts/9
.
掛載需要的 Device file 和 Socket
1 | # cat /etc/systemd/nspawn/arch-nspawn.nspawn |
# systemctl edit [email protected]
1 | [Service] |
允許連接 X Server
$ xhost +local:
配置 Steam
1 | machinectl start arch-nspawn |
以 root 登入,安裝 Steam, OpenGL 和 Vulkan 驅動。
由於某些程式直接使用 ALSA,需要安裝 pulseaudio-alsa
. 但其依賴 pulseaudio
,於是使用 pacman 的 --assume-installed
選項跳過。
# pacman -S --assume-installed pulseaudio pulseaudio-alsa
建立一個新的使用者,注意要與 Host 運行 D-Bus, PulseAudio 的 UID 相同。
此時應該可以啓動 Steam 了:
DISPLAY=:0 PULSE_SERVER=unix:/run/user/$UID/pulse/native steam