Wil*_*lli 4 linux gui ubuntu windows-10 windows-subsystem-for-linux
我正在尝试让 GUI 与 WSL2 一起使用,但我尝试的任何方法都不起作用。
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
export LIBGL_ALWAYS_INDIRECT=1
完成此操作后,我尝试执行一些曾经在 WSL1 下运行的程序。
在 的情况下nemo
,我收到以下错误:
Unable to init server: Could not connect: Connection refused
Could not parse arguments: Cannot open display:
Run Code Online (Sandbox Code Playgroud)
当尝试运行时gedit
,我收到以下错误:
Unable to init server: Could not connect: Connection refused
(gedit:6704): Gtk-WARNING **: 01:07:05.762: cannot open display: 172.19.64.1:0
Run Code Online (Sandbox Code Playgroud)
输入echo $DISPLAY
产生以下输出:172.19.64.1:0
我还卸载了 Ubuntu,手动删除了 AppData 中的残留内容,并重新安装了 Ubuntu。如果这一点很重要:我没有创建 UNIX 帐户,而是使用 root(在重新安装 Ubuntu 之前和之后,因此 Ubuntu 端应该不存在权限问题)。
编辑1:我还尝试以管理员身份运行Vcxsrv和Ubuntu,只是为了排除Windows方面的任何权限问题。
我可能还应该补充一点,我是 Windows Insider(快圈),自从大约半年前第一次尝试 WSL2 以来,我就遇到了这个问题。由于仅使用终端在没有 Nemo 的情况下浏览文件,迫使我始终降级到 WSL1,这真是一个痛苦……。
回答我自己的问题,以防有人遇到类似的问题。如果我使用这样的东西:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
Run Code Online (Sandbox Code Playgroud)
运行 GUI 程序根本无法工作,因为它们似乎找不到 Xserver(我尝试了其中的两个)。但是,如果我手动将 IP 地址设置为
export DISPLAY=IPv4_address_of_host:0
Run Code Online (Sandbox Code Playgroud)
它工作完美。
老实说,我不知道为什么第一种方法似乎对许多人(如果不是大多数人)有效,但对我却不起作用。但我在三台不同的物理机器上尝试过,第一种方法对任何一台都不起作用。我在互联网上也找不到该代码的任何变体。我一定是一个非常不幸的人:(。
不管怎样,如果你有和我一样的问题,你应该告诉你的路由器总是为你的电脑分配相同的IP地址。这样,您可以告诉您的 WSL 发行版应该始终使用相同的 IP 地址,以便您能够自动执行该export DISPLAY=IPv4_address_of_host:0
步骤。
小智 5
根据 wiki WSL - Ubuntu Wiki,您可以执行以下操作:
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 # in WSL 2
export LIBGL_ALWAYS_INDIRECT=1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46063 次 |
最近记录: |