我无法在 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 应用程序的方法: