Какой самый простой способ запуска приложений с графическим интерфейсом в подсистеме Windows для Linux с 2018 года?

Я искал вокруг, и в настоящее время есть два предложенных метода; установка расширения для подсистемы Windows для Linux и установка XServer.

Я хочу знать, какой метод является наиболее простым (простой в установке и использовании), а какой менее трудоемким.

Я просто хочу Synaptic и CMake. Почему это не может быть встроенной функцией?

11 ответов

Решение

Короткий ответ: вы не можете, так как WSL еще не поддерживает эту функцию. WSL не является полной установкой Linux с ядром Linux, он позволяет вам запускать некоторые собственные команды / исполняемые файлы Linux на ядре Windows (Microsoft) и имеет ограничения.

См. https://github.com/Microsoft/WSL/issues/2356

Однако вы можете установить сторонний X-сервер, такой как xming и ssh, в свой WSL.

https://virtualizationreview.com/articles/2017/02/08/graphical-programs-on-windows-subsystem-on-linux.aspx

Я не копировал это руководство здесь, так как оно довольно вездесущее (X поверх ssh), и я ожидаю, что некоторые приложения просто не будут работать даже с этой техникой.

VcXsrv

Я решил использовать VcXsrv в WSL (подсистема Windows 10 для Linux). Я рекомендую всем делать свои исследования между xming (принятый ответ) и VcXsrv перед выбором одного или другого для поддержки графического интерфейса пользователя (GUI) в Windows 10 Ubuntu 16.04.

Монтаж

Установка прямо вперед. С 17 марта 2019 года вы можете просто принять значения по умолчанию. Если вы хотите позвонить gedit из вашего Bash Shell / Terminal вы должны отредактировать ~/.bashrc и вставьте эту строку:

export DISPLAY=localhost:0.0

Что вы можете сделать после установки VcXsrv?

Я смог бежать:

sudo apt install ubuntu-desktop
sudo apt install yad
sudo apt install gedit

... для установки программного обеспечения с графическим интерфейсом. Это позволило мне бежать gedit а также nautilus, Также я смог установить определенные приложения с графическим интерфейсом через CLI (интерфейс командной строки), используя apt или же apt-get команды.

Когда я хочу попробовать многие из моих сценариев Ubuntu Bash в WSL, VcXsrv должен быть установлен так zenity а также yad Диалоговые окна x-windows отображаются для ввода пользователем.

Как уже отмечали другие, GUI в WSL не идеален, и вы можете ожидать, что потратите время на решение некоторых проблем. Также некоторые программы с графическим интерфейсом просто не будут работать в WSL.

У меня был очень положительный опыт работы с VcXsrv на Win 10 Bash на Ubuntu в Windows (Ubuntu 16.04 Xenial x86_64 Linux 4.4.0-17074-Microsoft). Я не сосредоточился на запуске рабочего стола Unity, поскольку он бесполезен и потребляет много ресурсов. Я просто запускал приложения из bash в режиме графического интерфейса пользователя с рабочего стола Windows10 с помощью XServer.

  1. Установите VcXsrv отсюда на Sourceforge

  2. Запустите приложение VcXsrv напрямую, не запускайте XLaunch. Тебе следует увидеть localhost:0.0 - 0 clients когда вы наводите курсор на значок на панели задач Win10

  3. Откройте Ubuntu Bash:

    cd /mnt
    

    (приводит к localhost @ localhost: / mnt $)

    cd .. 
    

    (localhost @ localhost: / $ означает, что эти команды приводят вас к началу жесткого диска, насколько WSL может видеть...)

    sudo apt-get install dbus synaptic nautilus --install-suggests --show-progress
    

    (это установит "dbus" для создания виртуального соединителя для графического интерфейса, "Менеджер пакетов Synaptic" и файловый менеджер "Nautilus" для unity-desktop

    cd /usr/share/dbus-1 && sudo vi session.conf
    

    (Когда session.conf открывается в редакторе vi)

    Нажмите i, чтобы войти в режим вставки и добавить

    <!-- <listen>unix:tmpdir=/tmp</listen> || Original Command --> to preserve original rules
    

    чем добавить:

    <listen>tcp:host=localhost,bind=0.0.0.0,port=0</listen>
    <auth>EXTERNAL</auth>
    <auth>DBUS_COOKIE_SHA1</auth>
    <auth>allow_anonymous</auth> 
    

    Нажмите ESC, когда вы закончите редактирование файла и :wq сохранить файл.

    Запустите эти команды и проверьте их вывод:

    $ export DISPLAY=localhost:0
    $ sudo service dbus start
    * Starting system message bus dbus                 [OK]
    $ echo $DISPLAY
    localhost:0
    
  4. Вы сделали! Теперь просто запустите synaptic, nautilus или firefox из Bash, и они должны загрузиться на рабочий стол Win10. Опции GUI, подобные этой, глючат, но работают. Вы можете установить ubuntu-desktop, unity, ccsm, compiz и попробуйте запустить Unity Desktop для Ubuntu. Я не пытался установить "Steam", потому что я все еще страдаю, пытаясь запустить "Unreal", Удачи:)

Если кто-то знает, как бежать gnome-terminal на XServer вместо XTerm поделитесь пожалуйста...

PS
Вы можете добавить VcXsrv в качестве загрузочного Win10

Чтобы максимально увеличить ваши источники с помощью "Steam", как указано в исходном сообщении, немного настройте Windows для управления сетевыми пакетами (чтобы снизить задержку) и расстановки приоритетов CPU/GPU для создания Win10XBox…:)

Хотя вы будете запускать "Steam" под "Unix", оболочка все еще "Windows", что позволяет запускать "Steam" на "Unix"…

Tcp Prep:;

В regedit:

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces

Здесь вам нужно просмотреть список подразделов, чтобы найти запись сетевого адаптера, которая используется для подключения к Интернету. Если вы используете DHCP, вам нужно искать DhcpIPAdddress запись (со значениями системных данных НЕ :0.0.0.0) найти правильный адаптер.

Найдя правильный ключ, щелкните его правой кнопкой мыши и выберите " Создать"> "Значение слова (32-разрядное)".

Назовите его TcpFrequency и нажмите ОК.

Затем дважды щелкните значение и установите его десятичное значение равным 1. (Чтобы восстановить настройку по умолчанию, измените значение на 2 или удалите ключ). Теперь перейдите к следующему ключу: HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ

Снова щелкните правой кнопкой мыши по ключу и выберите " Создать"> "Значение слова (32-разрядное)".

Назовите новый параметр TcpDelay

Затем дважды щелкните по нему и измените его десятичное значение на 1. (Чтобы восстановить ключ в более поздний момент времени, измените его на 0 или удалите ключ)

Алгоритм Нэгла

Алгоритм Nagle объединяет несколько небольших пакетов в один большой пакет для более эффективной передачи. Это предназначено для повышения пропускной способности передачи данных. Отключение nagling может помочь уменьшить задержку / пинг в некоторых играх. Алгоритм Nagle включен в Windows по умолчанию. Чтобы реализовать эту настройку, измените следующие ключи реестра.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-id}

Для {NIC-id}найдите тот, в котором указан ваш IP-адрес; под этим {NIC-id} ключ создать следующее значение DWORD:

  • TcpFrequency и установите его равным 1, чтобы отключить "ворчание" для игр.
  • TCPDelay и установите его также в 1, чтобы отключить "Nagling"
  • TcpTicks и установите его в 0

Замечания:

В некоторых сообщениях говорится, что твики уменьшали задержку при игре в Dota 2 и League of Legends, но у некоторых это не работает. Я попробовал это, и моя задержка улучшилась с 110 до 90 мс (SEA Server) при игре в Dota 2.

Индекс регулирования сети

В Windows реализован механизм регулирования сети, идея которого заключается в том, что обработка сетевых пакетов может быть ресурсоемкой задачей. Для достижения максимальной пропускной способности выгодно отключить такое регулирование.

Чтобы реализовать эту настройку, запустите regedit и измените реестр

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile. 

В SystemProfile создайте значение DWORD и присвойте ему имя Network Throttling Index, затем установите его шестнадцатеричное значение равным ffffffff для игр и максимальной пропускной способности: ffffffff полностью отключает регулирование.


Отзывчивость системной игры (Не уверен насчёт этого:)

Потоковая передача мультимедиа и некоторые игры, использующие службу "Планировщик мультимедийных классов" (MMCSS), могут использовать только до 80% ЦП. Служба "Планировщик мультимедийных классов" (MMCSS) обеспечивает приоритетный доступ к ресурсам ЦП, не отказывая в ресурсах ЦП фоновым приложениям с более низким приоритетом.

Для реализации этой настройки запустите regedit и измените раздел реестра.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile. 

Оттуда создайте новый DWORD и назовите его SystemResponsiveness, установите его десятичное значение в 00000000 для чистого игрового / потокового видео.

В том же кусте Реестра, что и вышеуказанная настройка, вы также можете изменить приоритет Игр. Чтобы реализовать эту настройку, перейдите к

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games

и измените следующие значения реестра:

  • "Приоритет GPU" меняет свои значения на 8 для игр.
  • "Приоритет" установлен на 1 для игр.

Все ура за "неизвестно" (простите, я был некоторое время, так как я скопировал ваши указания), автор этой настройки Windows=Xbox...

PPS: Если XServer завершается неудачно с тем, что вы хотели бы сделать, попробуйте найти обходной путь с помощью Docker.

Хотя полноценная среда рабочего стола с графическим интерфейсом не "официально" поддерживается Microsoft, она может работать.

Включить или отключить функции Windows
Включить подсистему Windows для Linux
Перезапустить компьютер
Запустите Microsoft Store
Поиск Ubuntu
Выберите Ubuntu 18.04 в разделе Приложения
Нажмите Get
Запустите Ubuntu и дождитесь установки
Установите имя пользователя и пароль

Запустите следующие команды:

sudo apt-get update -y
sudo apt-get install ubuntu-desktop -y
sudo apt-get install xfce4 xorg xrdp -y
sudo sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini

Создать и изменить.xsession

cd /home/user/
sudo vim .xsession

Добавить текст:

gnome-session --session=ubuntu-2d

Сохранить и выйти из vi

sudo chmod 755 .xsession
sudo systemctl enable xrdp

Вам понадобится второй аккаунт в Ubuntu

sudo adduser remote
sudo usermod -aG sudo remote

Изменить startwm.sh

cd /etc/xrdp
sudo chmod 777 startwm.sh
vim startwm.sh

Закомментируйте две нижние строки

#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession

Добавить текст:

startxfce4

Сохранить и выйти из vi

exit

В Windows перезапустите Ubuntu и запустите:

sudo /etc/init.d/xrdp start

В Windows запустите mstsc.exe
Компьютер: 127.0.0.1:3390
Оставьте имя пользователя пустым
соединять

Сессия: Xorg
имя пользователя: удаленный
пароль: пароль

Наслаждайтесь XFCE!

Когда закончите, закройте подключение к удаленному рабочему столу.
Вернитесь в командную строку Ubuntu

sudo /etc/init.d/xrdp stop
exit

Таким образом, вопрос требует трех «оценочных» критериев для методов запуска приложений с графическим интерфейсом пользователя Linux в WSL:

  • Простота установки
  • Простота использования
  • Потребление памяти

Я собираюсь добавить к этому:

  • Гибкость
  • Производительность

«Самый простой» — это в какой-то степени вопрос личного мнения, но я с удовольствием выскажу свое. В общем, я думаю, что важнее разобраться во всех доступных вариантах и ​​решить, какой из них подходит для ваших нужд.

На данный момент существует как минимум три метода запуска приложений Linux с графическим интерфейсом под WSL:

  • Windows 11 с WSLg
  • Установите сторонний X-сервер в Windows
  • Установите диспетчер рабочего стола в Ubuntu/WSL и подключитесь через подключение к удаленному рабочему столу Windows.

Я расскажу о каждом ниже.


WSLg

Хотя это и не было вариантом, когда изначально задавался этот вопрос, приложения с графическим интерфейсом для Linux теперь поддерживаются на WSL2 по умолчанию с Windows 11 с использованием WSLg.

Будет ли обновление до Windows 11 простым (или даже возможным) или нет, будет зависеть от вашего оборудования. Конечно, у Windows 11 более строгие требования к оборудованию, чем у Windows 10.

Если вы обновляетесь с Windows 10 до Windows 11, вам необходимо обновить установку WSL, используя:

      wsl --update
wsl --shutdown

... затем перезапустите.

Это добавит функцию WSLg вместе с последним ядром и другими обновлениями.

Если вы используете новую установку Windows 11, используйте:

      wsl --install

Это (вместе с перезагрузкой) установит:

  • Сама функция WSL
  • Платформа виртуальной машины Windows, необходимая для WSL2
  • Функция WSLg
  • Дистрибутив Ubuntu по умолчанию

Ускорение графического процессора также поддерживается в WSLg с использованием обновленных драйверов. Pulse Audio также предварительно настроен.

В архитектуре WSLg используется «системный дистрибутив» только для чтения, основанный на дистрибутиве CBL-Mariner , который Microsoft также использует для своих облачных служб Azure. Этот дистрибутив предварительно настроен для запуска Wayland/XWayland, с сокетами, совместно используемыми через внутреннюю сеть WSL и символическими ссылками на соответствующие файлы (например, ) для каждого установленного вами дистрибутива WSL2 (например, Ubuntu).

и переменные предварительно настроены WSL (PID 1) при первом запуске.

Обратите внимание, что WSLg работает только для экземпляров WSL2, а не для экземпляров WSL1.

Сводка и оценка WSLg:

  • Простота установки: зависит от возможности обновления до Windows 11.

  • Простота использования: Отлично

  • Гибкость: наиболее гибкая в некоторых отношениях — работает с Wayland/Weston/Xwayland. При желании можно запустить реализацию Weston-on-Weston для запуска полноэкранного рабочего стола.

    Наименее гибкий в других отношениях. Работает только под WSL2 и Windows 11. Оба других варианта могут поддерживать WSL1 и Windows 10.

  • Потребление памяти: Краткий ответ: около 213 МБ для работы. Мы можем предположить, что большая часть этого принадлежит инфраструктуре WSLg. Несмотря на это, я также протестировал два других сценария ниже с , поэтому использование памяти является приблизительной константой в этих измерениях.

    См. сноску в конце этого сообщения для получения дополнительной информации об использовании памяти WSLg. Обратите внимание, что это включает поддержку Wayland, Xwayland и Pulse Audio с этим объемом памяти. Два других варианта, перечисленных ниже, не включают Wayland или Pulse Audio.

  • Производительность: самая высокая после загрузки — с ускорением графического процессора. glmark2 из 666 в моей системе (nVidia 2070 Super), что звучит низко, но помните, что это накладывается на рабочий стол Windows. Это почти вдвое больше, чем у VcXsrv, и примерно в 4 раза больше, чем у xrdp.

    Однако обратите внимание, что существует начальная задержка при копировании и запуске дистрибутива системы при первом запуске любого приложения с графическим интерфейсом в сеансе WSL2. В моей высоко-среднепроизводительной системе эта задержка составляет около 5 секунд. Дополнительные приложения с графическим интерфейсом запускаются после этого менее чем за секунду.


xrdp

Для тех, кто не может перейти на Windows 11, или для тех, кому все еще нужна поддержка WSL1, есть еще два хороших варианта. Первый и мой предпочтительный метод — запустить в Ubuntu и просто используйте подключение к удаленному рабочему столу Microsoft с чем-то легким, например Xfce4.

      sudo apt install xrdp xfce4
sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini 
# So it doesn't interfere with Windows RDP on 3389

В /etc/xrdp/startwm.sh закомментируйте последние две строки (в которых упоминается Xsession) и добавьте:

      #test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession
exec startxfce4

Запустите xrdp с помощью:

      sudo service xrdp start

Вот и все — вы должны иметь возможность подключаться к рабочему столу WSL с помощью встроенного приложения для подключения к удаленному рабочему столу. Компьютер для подключения будет . Убедитесь, что Xorg выбран в качестве типа сеанса.

При использовании этого метода (как и в случае с WSLg) нет необходимости настраивать какие-либо правила брандмауэра, поскольку вы действительно используете встроенную в WSL трафик на WSL, если на этом порту в Windows нет прослушивающего сокета.

Лично я нахожу это намного проще, чем другие ответы здесь, касающиеся сторонних X-серверов. Однако он, вероятно, не самый эффективный с точки зрения памяти, поскольку требует запуска среды рабочего стола.

Сводка xrdp и оценка:

  • Простота установки: отлично, если диспетчер рабочего стола не требует Systemd (например, Gnome). Заставить Systemd работать в WSL в настоящее время является серьезной проблемой. Доступны сторонние помощники, но система и использование WSL кардинально меняются в Systemd.

  • Простота использования: довольно хорошо — не настраивается автоматически на запуск при необходимости, поэтому он не так прост, как WSLg. Некоторые люди сообщают, что он не такой производительный, как VcXsrv, но я также испытал отличную производительность.

  • Гибкость: Наименее гибкая для оконных опций. Вы должны запустить, по крайней мере, оконный менеджер и настроить его для xrdp. Он не может запускать отдельные приложения на рабочем столе Windows. Как WSLg, так и сторонние X-серверы могут работать как в полноэкранном, так и в оконном режиме.

    Этот метод работает в Windows 10 и должен работать и в WSL1, хотя я не могу вспомнить, действительно ли я тестировал xrdp с WSL1.

  • Потребление памяти: как я и ожидал, этот метод имеет самое большое потребление памяти. Запуск рабочего стола Xfce4 под xrdp потребовал дополнительных 687 МБ под Vmmem.

  • Производительность: мое личное использование xrdp было ограничено простыми приложениями с пользовательским интерфейсом, и производительность была довольно отзывчивой. Однако более глубокий осмотр показывает, что это, безусловно, худший вариант по производительности. Воспроизведение видео H.264 с использованием VLC сильно тормозит, а оценка glmark2, равная 167, примерно вдвое меньше, чем у VcXsrv.


Сторонний X-сервер в Windows, например VcXsrv

Наконец, «обычный» рекомендуемый метод (как в основном упоминается в других ответах здесь) для Windows 10 и/или WSL1 заключается в установке стороннего X-сервера в Windows и настройке Ubuntu в WSL (версия 1 или 2) для его использования. .

Добавлю, что старые методы установки переменная для WSI2, вероятно, немного устарела. Я рекомендую использовать:

      export DISPLAY="$(hostname).local:0"

При этом используется mDNS (т. домен), который уже несколько лет доступен в Windows 10 и WSL. Поскольку ваш в WSL Ubuntu такое же, как «имя компьютера» Windows, оно автоматически подключается к правильному IP-адресу хоста Windows.

Для WSL2 для этого параметра необходимо установить правило брандмауэра, поскольку вы подключаетесь «через сеть» (хотя и через виртуальную сеть). По моему опыту, Windows обнаружит попытку подключения в первый раз и запросит действие пользователя для автоматического создания правила брандмауэра. Однако, если это сообщение пропущено или отклонено, правило необходимо настроить вручную.

Для WSL1 правило брандмауэра не требуется, а «обычный» должен работать, так как он использует тот же сетевой интерфейс, что и Windows (где работает X-сервер).

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

Еще одно замечание относительно правил брандмауэра. Сеть WSL2 в Windows классифицируется как «общедоступный» сетевой интерфейс, и в последних выпусках Windows нет простого способа изменить это. Раньше это было возможно, но теперь этот интерфейс скрыт и не может быть изменен. Это означает, что вы должны настроить правила своего брандмауэра, чтобы разрешить VcXsrv (или любой сторонний X-сервер) в общедоступных сетях. Это может быть проблемой, если вы подключаетесь к другим ненадежным общедоступным сетям.

Не забудьте:

  • Отключайте VcXsrv при подключении к ненадежным сетям
  • И/или обеспечить контроль доступа на X-сервере.

Сторонний X-сервер — сводка и оценка:

  • Простота установки: ИМХО, самый проблемный из трех вариантов. Ваши результаты могут отличаться, но, как вы можете видеть из количества ответов (и вопросов, размещенных на сайтах Stack), люди, как правило, сталкиваются с различными проблемами при использовании этого метода. Межсетевое взаимодействие (от хоста Windows к виртуальной сети WSL2) усложняет ситуацию.

  • Простота использования: от умеренной до легкой после правильной установки и настройки. Хотя WSLg запустится «по запросу», когда первое приложение с графическим интерфейсом будет выполнено в WSL, вам нужно самостоятельно запустить сторонний X-сервер, когда он вам понадобится. Или вы можете оставить его включенным и работающим все время, но это будет означать более длительное использование памяти.

  • Гибкость: высокая — может работать как в оконном, так и в полноэкранном режиме. В настоящее время нет варианта Wayland.

    Работает в Windows 10/11 и WSL1/WSL2.

  • Потребление памяти: лучший вариант из этих трех вариантов. Израсходовано всего 48 МБ — увеличение на 10 МБ для Vmmem и еще 38,6 МБ для самого VcXsrv.

  • Производительность: хотя я предпочитал xrdp, мой сегодняшний бенчмаркинг заставит меня присмотреться к VcXsrv в будущем (и, возможно, к другим X-серверам, таким как MobaXterm). По-видимому, VcXsrv выполняет некоторое ускорение OpenGL, и его оценка glmark2, равная 322, была почти вдвое выше, чем у xrdp. Воспроизведение H.264 VLC было плавным даже при разрешении 3440x1440 (извините, нет 4k для тестирования).


Сноска: измерение памяти

Чтобы определить примерное использование памяти каждым методом, я посмотрел на потребление памяти процессом Vmmem в Windows. Это процесс виртуальной машины, который обрабатывает WSL2. Я также перезагрузил Windows между большинством этих тестов, но сделал между испытаниями одной и той же техники.

Обратите внимание, что PulseAudio можно включить с каждой из этих опций, но только WSLg включает его предварительно настроенным «из коробки». Я не включал поддержку PulseAudio ни в опциях xrdp, ни в VcXsrv, поэтому любая память, которая там нужна (если вам нужна поддержка аудио), не учитывается.

Сноска: потребление памяти WSLg

По-видимому, есть два «удара» в потреблении памяти с WSLg. Первый возникает, когда вы запускаете WSL2, когда WSLg просто «включен» (по умолчанию). Сначала я не заметил этого увеличения, потому что никогда не отключал WSLg . Полностью отключить эту функцию можно, отредактировав файл (см. этот документ ) и установка в раздел.

После отключения этой функции и перезапуска моего экземпляра Ubuntu WSL2 использование моей базовой памяти упало на 108 МБ. Повторное включение и перезапуск показали увеличение потребления памяти WSL2 в «устойчивом состоянии». Таким образом, есть небольшой штраф за то, что это включено все время .

Затем при запуске начального клиента x ( в этом случае) в Vmmem есть еще 105 МБ.

Сноска: Оптимизация

В общем, я запускал каждый из этих методов, используя готовую конфигурацию по умолчанию. Я включил ускорение OpenGL в VcXsrv, и мои драйверы Windows nVidia являются последними и подтверждены для использования для OpenGL Mesa в Ubuntu.

Для каждого метода могут быть доступны дополнительные оптимизации, которые улучшат производительность.

Согласно :

Теперь вы можете просмотреть поддержку подсистемы Windows для Linux (WSL) для запуска приложений Linux с графическим интерфейсом (X11 и Wayland) в Windows в полностью интегрированном рабочем столе.

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

  • Запуск приложений Linux из меню «Пуск» Windows.
  • Закрепление приложений Linux на панели задач Windows
  • Используйте Alt-Tab для переключения между приложениями Linux и Windows.
  • Вырезать + вставить в приложениях для Windows и Linux

Теперь вы можете интегрировать приложения Windows и Linux в свой рабочий процесс для беспроблемной работы на рабочем столе.

Предпосылки

Установка приложений с графическим интерфейсом на WSL.

Предполагая, что вы выполнили все предварительные требования и уже установили WSL, вам нужно обновить WSL.

  1. Откройте окно PowerShell , нажав « Пуск » → введите «Power Shell» → щелкните правой кнопкой мыши Windows PowerShell → « Запуск от имени администратора».

  2. Обновить WSL:

            wsl --update
    
  3. Вам нужно будет перезапустить WSL, чтобы обновление вступило в силу:

            wsl --shutdown
    

Теперь вы готовы начать использовать приложения с графическим интерфейсом на WSL.

ПРИМЕЧАНИЕ . Поддержка приложений с графическим интерфейсом пользователя в WSL не обеспечивает полноценного рабочего стола. Он зависит от рабочего стола Windows, поэтому установка инструментов или приложений, ориентированных на рабочий стол, может не поддерживаться.

Установите любое приложение с графическим интерфейсом, например, для установки gedit выполните:

      sudo apt update
sudo apt install gedit

Для запуска gedit выполните:

      gedit /path/to/any/file/you/want/to/edit

Ссылки: официальной документацииОфициальная документация

Основываясь на моих исследованиях, wsl изначально не был предназначен для пользователей графического интерфейса. Тем не менее, мы можем установить X-сервер от третьего лица для отображения графического интерфейса. Я проверил, что VcXsrv с некоторыми настройками может использоваться для отображения рабочего стола Debian Linux.

Я думаю, что мой подход работает гладко для отображения рабочего стола (GUI) в подсистеме Windows Linux Debian. Я сделал видео о том, как установить и отобразить mate-desktop (GUI) на Debian с нуля. Ссылка: https://youtu.be/QjogEWudpaM

Установка рабочего стола mate на Ubuntu немного отличается.

Шаг 1: установите wsl

  • Откройте PowerShell от имени администратора и введите Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  • Установите "Debian" или "Ubuntu" из магазина Microsoft.

Шаг 2: установите графический интерфейс пользователя, например, рабочий стол mate.

Для пользователя Debian:

  • Откройте консоль Linux в Windows 10 и установите mate-desktop, набрав: sudo apt-get update, нажмите ввод.
  • После завершения обновления введите sudo apt install task-mate-desktop, нажмите ввод.

ИЛИ для пользователя Ubuntu:

  • открыть консоль Ubuntu из Windows 10
  • тип sudo apt install tasksel, нажмите ввод
  • тип sudo apt update, нажмите ввод
  • тип sudo tasksel install ubuntu-mate-desktop, нажмите ввод

Шаг 3. Установите X-сервер в Windows 10. Я использовал сервер с открытым исходным кодом VcXsrv. Его можно скачать с https://sourceforge.net/projects/vcxsrv/.
После завершения установки:

  • открыть XLauch в windows 10

  • выполнить следующую настройку:

    • Выбрать: "One large window"
    • Выбрать Display number: 0
    • щелчок next
    • Выбрать Start no client
    • щелчок next
    • щелчок finish

Шаг 4: настройка в консоли Linux:

  • тип export DISPLAY=:0

  • тип export LIBGL_ALWAYS_INDIRECT=1 (может быть, эта похвала не требуется)

Шаг 5: Показать графический интерфейс рабочего стола:

  • тип mate-session для пользователя Debian

  • тип mate-session или lightdm-session для пользователя Ubuntu

Если вы запутались в моем описании, вы можете посмотреть мои видеоролики на YouTube. Установить GUI (рабочий стол mate) в подсистему Microsoft Windows Linux.

Если вы хотите легко получить готовое решение, используйте MobaXTerm. Это отличный эмулятор многопоточных терминалов с прямой поддержкой WSL и встроенным оптимизированным X-сервером. Я использую синаптику все время на Мобе. Даже RStudio.

Так как вы хотите, чтобы это было просто... В Магазине Microsoft есть приложение под названием x410. Это в основном сервер Cygwin X11 без использования самого Cygwin. После установки - это нулевой конфиг - вы можете запускать приложения WSL X11! (или даже целые рабочие столы). Возможно, вы захотите вставить следующие строки в ваш.bashrc (из вашей учетной записи пользователя WSL), чтобы вы могли запускать приложения из вашего терминала bash.

### Setup a D-Bus instance that will be shared by all X-Window apps
pidof dbus-launch 1> /dev/null || dbus-launch --exit-with-x11 1> /dev/null 2> 
/dev/null

## Export
export DISPLAY=127.0.0.1:0.0

Я купил x410 на бальзаме примерно за 5 евро. Так что, если это слишком много, возможно, подождите продажи!

Я выбрал ответ Пантеры не только потому, что он единственный, но и потому, что это правильный ответ; нет простого (простого) способа запуска приложений с графическим интерфейсом.

Также я использовал этот урок с некоторыми изменениями:

  1. Я не установил xfce, потому что я не знаю, зачем мне настольный компьютер.
  2. Выбрали Multiple Windows в XLaunch (Нет DE, следовательно, нет необходимости в одном гигантском окне)
  3. Нет необходимости исправлять MKDIR и нет необходимости в отдельном терминале.

Какие графические приложения я установил? Только Synaptic и CMake, так как я действительно не могу думать ни о чем другом, что мне понадобится на wsl.

Я не делаю VM/Dual Boot, по той же причине, на которую указал Пантера; Мне нужна удобная (для меня) среда разработки, а не полнофункциональная ОС.

  • установите Fedora в VirtualBox на вашем компьютере под управлением Windows с сетью NAT
  • в WSL sudo service ssh start
  • от Федоры беги ssh -Y 10.0.2.2

Обычно хост гостя VirtualBox может быть достигнут в 10.0.2.2

Теперь вы можете использовать любую программу WSL X на рабочем столе Fedora, даже с Windows.

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