在 WSL 下运行 GUI 应用程序

在 WSL 下运行 GUI 应用程序

我无法在 WSL 下运行 GUI 应用程序。首先,我尝试运行 Synaptic,但它显示了以下消息:

Unable to init server: Could not connect: Connection refused
Failed to initialize GTK.

Probably you're running Synaptic on Wayland with root permission.
Please restart your session without Wayland, or run Synaptic without root permission

然后我尝试运行gedit并得到以下结果:

Unable to init server: Could not connect: Connection refused

(gedit:36): Gtk-WARNING **: 12:46:33.434: cannot open display:

有人建议我可以通过远程桌面连接使用它,但我希望它与系统集成。

答案1

有人建议我可以通过远程桌面连接使用它,但我希望它与系统集成。

虽然在 WSL 下运行 GUI 应用程序有多种选择,但唯一“与系统集成”的是 WSLg。虽然您没有提到您使用的是哪个 Windows 版本,但从第二个错误可以看出,您可能正在运行 Windows 10。

Windows 11 上的 WSL 引入了一项名为 WSLg 的新功能,该功能提供了 Wayland/Weston/Xwayland 发行版,可直接在 Windows 桌面上运行 GUI 应用程序。然而讽刺的是,它在后台使用远程桌面协议(带扩展)来执行此操作。

随着 WSL 应用程序(可从 Microsoft Store 安装)的发布,Windows 10 用户现在也可以使用 WSLg,只要您的版本号以.2311或更高结尾即可。这应该包括 19042.2311、19043.2311、19044.2311 和 19045.2311(Windows 10 22H2),但目前仅在 22H2 上得到确认。目前,您需要KB5020030Windows 10 的可选预览更新。请确保您的 Windows 10 系统是最新的,然后继续可选更新,并且 KB5020030 应该可供安装。

Windows 10 和 Windows 11 用户都应该能够通过以下方式安装或更新:

wsl --install
# or, if already installed
wsl --update
# confirm 1.0.0 or later via:
wsl --version

除了 WSLg 之外,还有另外两种在 WSL 中运行 GUI 应用程序的方法:

  • xrdp正如我提到的这个答案。在运行 Gnome 或 Xfce4 等 Linux 桌面时,这可能是一个更好的选择。
  • 第三方 XServer,如这个答案

相关内容