Отображение Gnuplot в Bash в Ubuntu в Windows 10

Windows 10 Anniversary Update содержит подсистему 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 в тот же каталог, в котором программа Bash находится в Windows, но безуспешно. Мне действительно нужен gnuplot, и хотя я могу установить его на Windows, было бы гораздо удобнее иметь его в подсистеме Linux.

Как я могу исправить эту проблему отображения /x11(пересылка)?

2 ответа

Решение

(1) Установите Xming. (2) выполнить export DISPLAY=:0 nameOfProgram (например export DISPLAY=:0 gnuplot

Другой (с открытым исходным кодом!) x-сервер — VcXsrv. Вы можете включить ЛЮБОЕ графическое приложение (не только gnuplot) для WSL.

В итоге:

  • установить VcXsrv (https://sourceforge.net/projects/vcxsrv/)
  • запустите xlaunch.exe (например, в «C:\Program Files\VcXsrv\xlaunch.exe»). При настройке следует обратить особое внимание на следующие параметры:
    • установите «Несколько окон» (окна будут выглядеть так, как вы привыкли)
    • добавьте «-ac» в «Дополнительные параметры для VcXsrv» (сделает x-сервер доступным для вашего WSL)
    • в конце сохраните файл конфигурации в ваших запускаемых приложениях (%appdata%\Microsoft\Windows\Start Menu\Programs\Startup)
  • добавьте «export DISPLAY=localhost:0.0» в конец вашего «~/.bashrc»

Если вы также хотите запустить, например, 'gnuplot -p script', вы должны установить переменную среды XDG_RUNTIME_DIR для соответствующего временного хранилища. Добавлять

      export XDG_RUNTIME_DIR=/tmp/an/appropriate/dir
export RUNLEVEL=3

в ваш ~/.bashrc, где "an/Соответствующий/каталог" может быть чем-то вроде "runtime-" + ваше имя пользователя.

Источники:

Другие вопросы по тегам