我在 Windows 10 上配置了 vcxsrv 以及 GUI 运行所需的其他步骤。现在我在 WSL 上输入 gvim 命令,大约 5-10 分钟后,它显示了以下错误消息
E233: cannot open display
Press ENTER or type command to continue
E852: The child process failed to start the GUI
还在 .bashrc 文件中添加了以下行
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
如果我运行该命令,startxfce4
它只会显示消息:
/usr/bin/startxfce4:X 服务器已在显示器 172.26.32.1:0 上运行,然后冻结,
这可能是什么原因?有什么想法如何在 WSL2 上运行 GUI?
答案1
顺便说一句,我将有将其放在评论中(因为这对您来说不是一个完整的解决方案)但评论中没有足够的空间容纳所有这些信息。
首先,您不需要运行完整的窗口管理器作为导出的显示。
这不是 VNC(它好得多)。
在这种情况下,WINDOWS vcxsrv 是您的窗口管理器。
首先,跳过花哨的export DISPLAY
命令..只需手动输入即可,直到它正常工作。如export DISPLAY=<IPADDR_HERE>:0.0
使用命令从 Windows 获取该地址wsl hostname -I
。
现在,添加 xterm 并使用它来测试导出的显示是否工作(它具有尽可能少的依赖关系)。
现在,使用该 xterm 尝试启动 gvim。
当您使该场景正常运行时,您可以返回尝试自动化该功能。
在 WSL1 或 WSL2 下使用 x11 转发没有什么特别之处。你可以听取 Linux 论坛上人们的建议,了解如何操作。