Поиск по сайту:

Как запускать графические настольные приложения Linux из оболочки Bash в Windows 10


Оболочка Bash в Windows 10 официально не поддерживает графические настольные приложения Linux. Microsoft говорит, что эта функция предназначена только для разработчиков, которые хотят запускать терминальные утилиты Linux. Но лежащая в основе «Подсистема Windows для Linux» более мощная, чем кажется Microsoft.

В Windows 10 можно запускать графические приложения Linux, но имейте в виду, что это официально не поддерживается. Не каждое программное обеспечение Linux работает, а графические приложения еще более сложны и менее проверены. Но со временем они должны стать более стабильными, поскольку Microsoft улучшает базовую подсистему Windows для Linux.

Оболочка Bash в Windows 10 поддерживает только 64-битные двоичные файлы, поэтому вы не можете установить и запустить 32-битное программное обеспечение Linux.

Как это работает

Во-первых, давайте подробно рассмотрим, как это работает, чтобы вы могли иметь некоторое представление о том, что мы здесь делаем.

Windows 10 включает в себя базовую «подсистему Windows для Linux», которая позволяет Windows 10 запускать программное обеспечение Linux путем преобразования системных вызовов Linux в системные вызовы Windows.

Когда вы запускаете дистрибутив Linux, такой как Ubuntu, он загружает и устанавливает на ваш компьютер полный образ пользовательского пространства Ubuntu. Сюда входят точно такие же двоичные файлы или приложения, которые будут работать в Ubuntu. Эта среда «Bash в Ubuntu в Windows» работает благодаря базовой подсистеме Windows для Linux.

Microsoft не хочет тратить время на работу с графическим программным обеспечением, поскольку эта функция предназначена для инструментов разработчика из командной строки. Но основная техническая причина, по которой графические приложения не поддерживаются, заключается в том, что им требуется «X-сервер» для обеспечения этого графического интерфейса. На типичном рабочем столе Linux этот «X-сервер» автоматически появляется при загрузке компьютера и отображает весь рабочий стол и используемые вами приложения.

Но попробуйте открыть графическое приложение из Bash в Windows, и оно будет жаловаться, что не может открыть дисплей.

Однако есть приложения X-сервера, которые вы можете установить на рабочий стол Windows. Как правило, они используются для визуализации приложений Linux, работающих на других компьютерах — протокол «X11» довольно старый и был разработан с возможностью запуска через сетевое подключение.

Если вы установите приложение X-сервера на рабочий стол Windows и измените параметр в оболочке Bash, приложения отправят свой графический вывод в приложение X-сервера и отобразятся на вашем рабочем столе Windows. Все должно работать нормально, если эти приложения не зависят от системных вызовов Linux, которые пока не поддерживает подсистема Windows для Linux.

Шаг первый: установите X-сервер

Есть несколько разных X-серверов, которые вы можете установить в Windows, но мы рекомендуем Xming. Загрузите его и установите на свой ПК с Windows 10.

Процесс установки прост: вы можете просто принять настройки по умолчанию. Затем он автоматически запустится и запустится на панели задач, ожидая, пока вы запустите графические программы.

Шаг второй: установите программу

Вы можете установить графические настольные программы Linux, как и любую другую программу, используя команду apt-get в среде Bash на основе Ubuntu. Например, допустим, вы хотите установить графический редактор vim на основе GTK. Вы должны запустить следующую команду в окне Bash:

sudo apt-get install vim-gtk

Он пройдет процесс установки в окне командной строки, как и в Ubuntu.

Шаг третий: установите переменную среды отображения

Теперь вам нужно установить переменную среды «DISPLAY», чтобы она указывала на X-сервер, работающий на вашем ПК с Windows 10. Если этого не сделать, графические приложения просто не запустятся.

Для этого выполните следующую команду в среде Bash:

export DISPLAY=:0

Этот параметр применяется только к вашему текущему сеансу Bash. Если вы закроете окно, Bash забудет об этом. Вам придется запускать эту команду каждый раз, когда вы снова открываете Bash и хотите запустить графическое приложение.

Шаг четвертый. Запустите приложение

Теперь вы можете просто запустить графическое приложение, введя имя его исполняемого файла, как если бы вы вводили любую другую команду. Например, чтобы запустить vim-gtk, вы должны запустить:

gvim

Это так просто. Если приложение аварийно завершает работу после запуска, системные вызовы Linux, которые ему требуются, могут не поддерживаться подсистемой Windows для Linux. Вы мало что можете с этим поделать. Но попробуйте, и вы обнаружите, что нужные вам приложения работают прилично!

Вы также можете комбинировать третий и четвертый шаги, если хотите. Вместо того чтобы экспортировать переменную DISPLAY один раз для всего сеанса оболочки Bash, вы просто запускаете графическое приложение с помощью следующей команды:

DISPLAY=:0 command

Например, чтобы запустить gvim, вы должны запустить:

DISPLAY=:0 gvim

Помните, что это официально не поддерживается, поэтому вы можете столкнуться с ошибками в более сложных приложениях. Виртуальная машина — это более надежное решение для запуска многих графических настольных приложений Linux в Windows 10, но это отличное решение для некоторых более простых задач.