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

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

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

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

130
задан 4 February 2019 в 12:42

9 ответов

Короткий ответ: вы не можете, поскольку 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), и я ожидал, что некоторые приложения просто не будут работать даже с этой техникой.

38
ответ дан 4 February 2019 в 12:42
  • 1
    Существует ли система синхронизации на Linux, который показывает, сколько единиц измерения времени начиная с установки, независимо от текущего системного времени (в случае, если время было изменено)? – David 2 June 2012 в 19:32
  • 2
    Существует ли система синхронизации на Linux, который показывает, сколько единиц измерения времени начиная с установки, независимо от текущего системного времени (в случае, если время было изменено)? – David 2 June 2012 в 19:32
  • 3
    Существует ли система синхронизации на Linux, который показывает, сколько единиц измерения времени начиная с установки, независимо от текущего системного времени (в случае, если время было изменено)? – David 2 June 2012 в 19:32
  • 4
    Существует ли система синхронизации на Linux, который показывает, сколько единиц измерения времени начиная с установки, независимо от текущего системного времени (в случае, если время было изменено)? – David 2 June 2012 в 19:32
  • 5
    Существует ли система синхронизации на Linux, который показывает, сколько единиц измерения времени начиная с установки, независимо от текущего системного времени (в случае, если время было изменено)? – David 2 June 2012 в 19:32
  • 6
    Существует ли система синхронизации на Linux, который показывает, сколько единиц измерения времени начиная с установки, независимо от текущего системного времени (в случае, если время было изменено)? – David 2 June 2012 в 19:32

VcXsrv

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

Установка

Установка проста. С 17 марта 2019 г. вы можете просто принять значения по умолчанию. Если вы хотите вызвать gedit из вашей оболочки / терминала Bash, вам необходимо отредактировать ~ / .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.

Примечания по настройке

Я изменил / etc / environment , чтобы настроить раскрывающиеся меню графического интерфейса:

PATH="/mnt/e/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export LIBGL_ALWAYS_INDIRECT=Yes
export DISPLAY=localhost:0.0
  • / mnt / e / bin ] - необычный путь, потому что именно здесь я храню сценарии, используемые как в WSL с двойной загрузкой Windows 10, так и в двойной загрузке Ubuntu 16.04. Большинство пользователей не добавили бы это на свои машины.
97
ответ дан 4 February 2019 в 12:42

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

12141] Включение и отключение функций Windows
Включите подсистему Windows для Linux
Перезагрузите компьютер
Запустите Microsoft Store
Найдите Ubuntu
Выберите Ubuntu 18.04 в разделе «Приложения»
. Нажмите "Получить"
. Запустите 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
10
ответ дан 4 February 2019 в 12:42

Oleh kerana anda menginginkannya dengan mudah ... Terdapat aplikasi di Kedai Microsoft yang disebut x410 . Ini pada dasarnya adalah pelayan Cygwin X11 tanpa penggunaan Cygwin itu sendiri. Selepas ansuran - iaitu konfigurasi sifar - anda boleh menjalankan Aplikasi WSL X11! (atau bahkan keseluruhan desktop). Anda mungkin mahu memasukkan baris berikut ke dalam .bashrc anda (dari akaun pengguna WSL anda) supaya anda dapat menjalankan aplikasi dari terminal bash anda.

### 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

Saya membeli x410 secara seluas kira-kira 5 euro .. Jadi jika terlalu banyak, mungkin tunggu jualan!

3
ответ дан 4 February 2019 в 12:42
  • 1
    Спасибо mitch, создаст дополнительный вопрос об этом, так как 12.04 получил много изменений. – Luis Alvarado♦ 3 June 2012 в 22:43
  • 2
    Спасибо mitch, создаст дополнительный вопрос об этом, так как 12.04 получил много изменений. – Luis Alvarado♦ 3 June 2012 в 22:43
  • 3
    Спасибо mitch, создаст дополнительный вопрос об этом, так как 12.04 получил много изменений. – Luis Alvarado♦ 3 June 2012 в 22:43
  • 4
    Спасибо mitch, создаст дополнительный вопрос об этом, так как 12.04 получил много изменений. – Luis Alvarado♦ 3 June 2012 в 22:43
  • 5
    Спасибо mitch, создаст дополнительный вопрос об этом, так как 12.04 получил много изменений. – Luis Alvarado♦ 3 June 2012 в 22:43
  • 6
    Спасибо mitch, создаст дополнительный вопрос об этом, так как 12.04 получил много изменений. – Luis Alvarado♦ 3 June 2012 в 22:43

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

Кроме того, я использовал этот учебник с некоторыми изменениями:

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

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

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

3
ответ дан 4 February 2019 в 12:42
  • 1
    @Luis Альварадо, Спасибо, у меня будет SSD в моих руках в следующем месяце, и я сообщу наверняка, что преимущества по регулярному HD. – Mitch♦ 3 June 2012 в 22:45
  • 2
    @Luis Альварадо, Спасибо, у меня будет SSD в моих руках в следующем месяце, и я сообщу наверняка, что преимущества по регулярному HD. – Mitch♦ 3 June 2012 в 22:45
  • 3
    @Luis Альварадо, Спасибо, у меня будет SSD в моих руках в следующем месяце, и я сообщу наверняка, что преимущества по регулярному HD. – Mitch♦ 3 June 2012 в 22:45
  • 4
    @Luis Альварадо, Спасибо, у меня будет SSD в моих руках в следующем месяце, и я сообщу наверняка, что преимущества по регулярному HD. – Mitch♦ 3 June 2012 в 22:45
  • 5
    @Luis Альварадо, Спасибо, у меня будет SSD в моих руках в следующем месяце, и я сообщу наверняка, что преимущества по регулярному HD. – Mitch♦ 3 June 2012 в 22:45
  • 6
    @Luis Альварадо, Спасибо, у меня будет SSD в моих руках в следующем месяце, и я сообщу наверняка, что преимущества по регулярному HD. – Mitch♦ 3 June 2012 в 22:45

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

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

0
ответ дан 4 February 2019 в 12:42
  • 1
    @psusi Да это может быть сжато (или немного выкачано). Сжатие И основа 10 по сравнению с основой 8 математики, оба аспекты, которые способствуют разнице в размерах, о которой сообщают локально по сравнению с на сервере. Windows не использует основу 10 описаний размеров файла, ни делает многие инструменты командной строки. – dobey 11 September 2013 в 19:45
  • 2
    @psusi Да это может быть сжато (или немного выкачано). Сжатие И основа 10 по сравнению с основой 8 математики, оба аспекты, которые способствуют разнице в размерах, о которой сообщают локально по сравнению с на сервере. Windows не использует основу 10 описаний размеров файла, ни делает многие инструменты командной строки. – dobey 11 September 2013 в 19:45
  • 3
    @psusi Да это может быть сжато (или немного выкачано). Сжатие И основа 10 по сравнению с основой 8 математики, оба аспекты, которые способствуют разнице в размерах, о которой сообщают локально по сравнению с на сервере. Windows не использует основу 10 описаний размеров файла, ни делает многие инструменты командной строки. – dobey 11 September 2013 в 19:45
  • 4
    @psusi Да это может быть сжато (или немного выкачано). Сжатие И основа 10 по сравнению с основой 8 математики, оба аспекты, которые способствуют разнице в размерах, о которой сообщают локально по сравнению с на сервере. Windows не использует основу 10 описаний размеров файла, ни делает многие инструменты командной строки. – dobey 11 September 2013 в 19:45
  • 5
    @psusi Да это может быть сжато (или немного выкачано). Сжатие И основа 10 по сравнению с основой 8 математики, оба аспекты, которые способствуют разнице в размерах, о которой сообщают локально по сравнению с на сервере. Windows не использует основу 10 описаний размеров файла, ни делает многие инструменты командной строки. – dobey 11 September 2013 в 19:45
  • 6
    @psusi Да это может быть сжато (или немного выкачано). Сжатие И основа 10 по сравнению с основой 8 математики, оба аспекты, которые способствуют разнице в размерах, о которой сообщают локально по сравнению с на сервере. Windows не использует основу 10 описаний размеров файла, ни делает многие инструменты командной строки. – dobey 11 September 2013 в 19:45

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

4
ответ дан 4 February 2019 в 12:42

У меня был очень положительный опыт работы с 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 клиентов при наведении курсора на значок на панели задач 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 Package Manager» и файловый менеджер «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
  1. Готово! Теперь просто запустите synaptic, nautilus или firefox из Bash, и они должны загрузиться на рабочем столе Win10. Подобные варианты графического интерфейса содержат ошибки, но работают. Вы можете установить ubuntu-desktop , unity , ccsm , compiz и попробовать запустить Unity Desktop для Ubuntu . Я не пытался установить «Steam», потому что я все еще пытаюсь запустить «Unreal», удачи :)

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

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

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

Хотя вы будете запускать «Steam» под «Unix», оболочка по-прежнему будет «Windows», что позволяет запускать «Steam» на «Unix»…

Tcp Prep:;

В regedit :

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

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

После того, как вы найдете правильную клавишу щелкните его правой кнопкой мыши и выберите New> Dword (32-bit) Value .

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

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

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

Назовите ключ новый параметр TcpDelay

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

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

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

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

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

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

Примечание:

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

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

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

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

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

В SystemProfile создайте значение DWORD и назовите его NetworkThrottlingIndex затем установите его шестнадцатеричное значение на 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

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

  • «Приоритет графического процессора» измените его значение на 8 для игр.
  • «Приоритет» установлен на 1 для игр.

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

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

  • [WSL_Apache_Roolez] [1]
  • [Throttling_a_'mm '_: 0] [2]
  • [Вы получили почту !!!] [3]

Microsoft объявила зеленый свет для графического интерфейса WSL 2: https://devblogs.microsoft.com/commandline/the-windows-subsystem-for-linux-build-2020-summary/#wsl-gui

28
ответ дан 4 February 2019 в 12:42

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

Я думаю, что мой подход работает гладко для отображения рабочего стола mate (GUI) в подсистеме Windows Linux Debian. Я снял видео о том, как с нуля установить и отобразить mate-desktop (GUI) на wsl 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 , нажмите Enter.
  • После обновления закончить, введите sudo apt install task-mate-desktop , нажмите Enter.

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

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

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

  • откройте XLauch в Windows 10

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

    • выберите: «Одно большое окно»
    • выберите Номер дисплея: 0
    • щелкните далее
    • выберите Не запускать клиента
    • щелкните затем
    • щелкните завершить

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

  • введите экспорт DISPLAY =: 0

  • тип экспорт LIBGL_ALWAYS_INDIRECT = 1 (возможно, эта рекомендация не требуется)

Шаг 5 : Отображение графического интерфейса сопряжения и рабочего стола:

  • тип mate-session для Debian user

  • type mate-session или lightdm-session для Ubuntu user

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

6
ответ дан 22 November 2019 в 23:08

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

Похожие вопросы: