我有 WSL 2:
wsl -l -v
NAME STATE VERSION
* Debian Running 2
docker-desktop-data Stopped 2
docker-desktop Stopped 2
但是我在安装基于 GNOME 的应用程序时遇到了问题:
$ flatpak install flathub com.github.geigi.cozy
Looking for matches…
Required runtime for com.github.geigi.cozy/x86_64/stable (runtime/org.gnome.Platform/x86_64/40) found in remote flathub
Do you want to install it? [Y/n]: Y
com.github.geigi.cozy permissions:
ipc network fallback-x11 pulseaudio wayland
x11 dri file access [1] dbus access [2] bus ownership [3]
[1] host, xdg-run/gvfs, xdg-run/gvfsd
[2] org.freedesktop.Notifications, org.gtk.vfs.*
[3] org.mpris.MediaPlayer2.Cozy
ID Arch Branch Remote Download
1. [✗] org.gnome.Platform x86_64 40 flathub 349.5 MB / 363.9 MB
2. [ ] org.gnome.Platform.Locale x86_64 40 flathub < 333.8 MB (partial)
3. [ ] org.freedesktop.Platform.GL.default x86_64 20.08 flathub < 106.4 MB
4. [ ] org.freedesktop.Platform.openh264 x86_64 2.0 flathub < 1.5 MB
5. [ ] com.github.geigi.cozy x86_64 stable flathub < 4.1 MB
6. [ ] com.github.geigi.cozy.Locale x86_64 stable flathub < 373.4 kB (partial)
Error: Unable to connect to system bus
error: Failed to install org.gnome.Platform: Unable to connect to system bus
目前使用 WSL 2 安装基于 GNOME 的应用程序的解决方法是什么?
答案1
您可能遇到的几个问题。我在这个 Ask Ubuntu 答案所以我不再重复一切这里,但在较高层次上:
问题 1:Gnome 需要 Systemd,而 WSL 不直接支持它
有多个脚本可以在 WSL 上启用 Systemd。请参阅这个问题有一些选择。
从根本上讲,这涉及创建一个新的命名空间,其中 Systemd 可以是 PID1,进入该命名空间,然后从该命名空间内部运行您的应用程序和命令。这就是我上面链接的 AU 答案所涵盖的内容。该技术做然而,它有局限性,而这正是 Genie 和 WSL2 Hacks 等更复杂的脚本试图处理的。
问题 2:WSL2 默认不包含 GUI 应用程序支持
如果你使用的是 Windows 11,则可以使用 WSLg,或者可以使用以下替代解决方案之一这个问题(或 Stack Exchange 网络上的其他几个问题和答案)。