Windows 10 周年更新包含一个 Linux 子系统。我需要在 Linux 环境中工作,因此我开始研究这个子系统。到目前为止,我已经能够安装所有需要的应用程序。我成功安装了 gnuplot,它运行良好。但是,我无法设置term
为x11
,因此我无法绘制任何内容以显示。以下是错误:
Terminal type set to 'qt'
gnuplot> set term x11
Terminal type set to 'x11'
Options are ' nopersist enhanced'
gnuplot>
gnuplot: unable to open display ''
gnuplot: X11 aborted.
我尝试将 Xming 安装到 Windows 中 Bash 程序所在的同一目录中,但没有成功。我真的需要 gnuplot,尽管我可以在 Windows 上安装它,但将它安装在 Linux 子系统上会方便得多。
我该如何修复这个显示/x11(转发)问题?
答案1
(1)安装 Xming。(2)执行export DISPLAY=:0 nameOfProgram
(例如export DISPLAY=:0 gnuplot
答案2
另一个(开源!)x 服务器是 VcXsrv。您可以为 WSL 启用任何图形应用程序(不仅仅是 gnuplot)。
总之:
- 安装 VcXsrv(https://sourceforge.net/projects/vcxsrv/)
- 启动 xlaunch.exe(例如在“C:\Program Files\VcXsrv\xlaunch.exe”中)。配置时应特别注意以下选项:
- 设置“多个窗口”(将使窗口看起来像您习惯的那样)
- 在“VcXsrv 的附加参数”中添加“-ac”(将使您的 WSL 可以访问 x 服务器)
- 最后,将配置文件保存到启动应用程序(%appdata%\Microsoft\Windows\Start Menu\Programs\Startup)
- 在“~/.bashrc”末尾添加“export DISPLAY=localhost:0.0”
如果您还想运行“gnuplot -p script”,则应为相应的临时存储设置 XDG_RUNTIME_DIR 环境变量。添加
export XDG_RUNTIME_DIR=/tmp/an/appropriate/dir
export RUNLEVEL=3
到您的 ~/.bashrc,其中“an/appropriate/dir”可以是“runtime-”+ 您的用户名之类的内容。
资料来源:
- https://www.stat.ipb.ac.id/agusms/index.php/2019/01/15/how-to-run-graphical-linux-applications-on-bash-on-ubuntu-on-windows-10/
- https://superuser.com/questions/1476086/error-cant-open-display-0
- https://seanthegeek.net/234/graphical-linux-applications-bash-ubuntu-windows/
- https://stackoverflow.com/questions/59790350/qstandardpaths-xdg-runtime-dir-not-set-defaulting-to-tmp-runtime-aadithyasb