Рабочий стол Ubuntu по умолчанию с TightVnc и Windows Linux Subsystem

Я успешно установил WLS (ubuntu 18) на окнах 10 машин. Я хочу получить доступ к его использованию функций UI TightVnc. С настройками по умолчанию .vnc/xstartup содержит следующие строки

xrdb $HOME/.Xresources
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession

и я могу соединиться с ним с помощью Трудного vnc средства просмотра из окон, но UI похожenter image description here, Но, я хочу использовать рабочий стол по умолчанию, который поставлется с Ubuntu 18. Я установил gnome и измененный xstartup файл к следующему (предложенный кем-то в сети)

#!/bin/sh

#Uncommment this line if using Gnome and your keyboard mappings are incorrect.
#export XKL_XMODMAP_DISABLE=1

# Load X resources (if any)
if [ -r "$HOME/.Xresources" ]
then
        xrdb "$HOME/.Xresources"
fi

gnome-session --disable-acceleration-check --session=ubuntu &

Но когда я запускаю vncserver после внесения этих изменений я могу соединиться, но оно показывает серый экран без визуальных средств управления какenter image description here Обратите внимание на то, что, я имел нет .Xresources файл на моей машине, таким образом, я создал пустой вручную, но это не имело никакого значения. Ниже вывод ls /usr/share/xsessions

ubuntu-communitheme-snap.desktop  ubuntu.desktop  xfce.desktop

Я вижу некоторые ошибки в .vnc/CS-63341DT:5.log файл. Ниже содержание этого файла

05/04/19 12:49:17 Xvnc version TightVNC-1.3.10
05/04/19 12:49:17 Copyright (C) 2000-2009 TightVNC Group
05/04/19 12:49:17 Copyright (C) 1999 AT&T Laboratories Cambridge
05/04/19 12:49:17 All Rights Reserved.
05/04/19 12:49:17 See http://www.tightvnc.com/ for information on TightVNC
05/04/19 12:49:17 Desktop name 'X' (CS-63341DT:5)
05/04/19 12:49:17 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
05/04/19 12:49:17 Listening for VNC connections on TCP port 5905
Font directory '/usr/share/fonts/X11/75dpi/' not found - ignoring
Font directory '/usr/share/fonts/X11/100dpi/' not found - ignoring
gnome-session-binary[1645]: WARNING: Using null backend for session tracking
_IceTransmkdir: Owner of /tmp/.ICE-unix should be set to root
GNOME_KEYRING_CONTROL=/home/adeel/.cache/keyring-FKBRZZ
GNOME_KEYRING_CONTROL=/home/adeel/.cache/keyring-FKBRZZ
GNOME_KEYRING_CONTROL=/home/adeel/.cache/keyring-FKBRZZ
SSH_AUTH_SOCK=/home/adeel/.cache/keyring-FKBRZZ/ssh
Window manager warning: Unsupported session type
gnome-session-binary[1645]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Window manager warning: Unsupported session type
gnome-session-binary[1645]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
gnome-session-binary[1645]: WARNING: App 'org.gnome.Shell.desktop' respawning too quickly
gnome-session-binary[1645]: CRITICAL: We failed, but the fail whale is dead. Sorry....

Что я могу сделать для создания человечности 18 по умолчанию deskto работой со средством просмотра TightVnc из окон?

5
задан 5 April 2019 в 00:52

3 ответа

Я использую VcXsrv , потому что он бесплатный и часто обновляется. Смотрите мой ответ здесь:

Важно установить его, принимая значения по умолчанию, а затем (для меня) отредактировать /etc/environment и изменить это:

PATH="/mnt/e/bin:/mnt/e/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:"

на это:

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: в начале пути важно только для общих сценариев, хранящихся в разделе NTFS, который запускается как в Ubuntu, так и в WSL Bash.
  • Экспорт LIBGGL... важен для правильной работы графического интерфейса.
  • Экспорт DISPLAY... важен для правильной работы X-сервера. Тогда я могу использовать yad и zenity для всех моих сценариев GUI.
1
ответ дан 23 November 2019 в 09:11

По данным Microsoft WSL разработан только для разработчиков, которые хотят выполнить утилиты терминала Linux. Это обозначается в этом подобном вопросе.

Было сообщено, что можно получить возможно успешные результаты

1) Установка Xserver как Xming или VcXsrv.

2) Установка графического программного обеспечения Вы хотите работать под WSL через apt-get или apt

3) Экспорт Вашей переменной среды дисплея с export DISPLAY=:0 каждый раз Вы хотите запустить графическое приложение.

4) запустите графическое приложение путем введения имени его исполняемого файла

Примечание: Эта подсистема (WSL) не способна к выполнению всего программного обеспечения Linux, такова как 32-разрядные двоичные файлы или те, которые требуют определенных сервисов ядра Linux, не реализованных в WSL.

Возможно выполнить немного графические (GUI) приложения (такие как Mozilla Firefox) путем установки сервера X11 в рамках Windows (хост) среда (такие как VcXsrv или Xming), как упомянуто выше хотя не без протестов, таких как отсутствие аудио поддержки или аппаратного ускорения (приводящий к плохой производительности при обработке графики). Поддержка OpenCL и CUDA также не реализуется в настоящее время, хотя это может быть реализовано в будущих выпусках.

По моему скромному мнению, это осуществление является большим количеством работы, чем это стоит. Конечный результат страдает от плохой производительности при обработке графики и узких мест ввода-вывода. Это далеко prefereable для простого выполнения Ubuntu на VM или двойной загрузке, чем иметь дело с возможностью, что системные вызовы Linux, которых требует приложение, не могут полностью поддерживаться Windows Subsystem для Linux.

Источники:

Что самый легкий путь состоит в том, чтобы запустить приложения GUI в Windows Subsystem для Linux по состоянию на 2018?

Как я устанавливаю Ubuntu вместе с предварительно установленным Windows с UEFI?

https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/

https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux

https://blogs.msdn.microsoft.com/wsl/2016/06/08/wsl-system-calls/

5
ответ дан 23 November 2019 в 09:11

enter image description here Следующие инструкции были скопированы и вставлены из статьи, которую я написал, но она потеряла исходное форматирование, ссылки и скриншоты:

Источник: Как установить Ubuntu Desktop с графическим Пользовательский интерфейс в WSL2


Загрузите VcXsrv: Посетите официальный сайт Нажмите «Загрузить»


Установите VcXsrv: Откройте «vcxsrv-64.1.20.8.1.installer.EXE" Нажмите "Далее" Нажмите «Установить» Нажмите «Закрыть»


Разрешить доступ к VcXsrv: Проверьте «Частные сети» Нажмите «Разрешить доступ»


Откройте PowerShell: Нажмите «⊞ Windows» Введите «PowerShell» в строку поиска Щелкните правой кнопкой мыши «Windows PowerShell». Нажмите «Запуск от имени администратора»


Откройте WSL2: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

wsl


Установите рабочий стол Ubuntu: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

sudo apt --yes install ubuntu-desktop


Установите переменную имени пользователя: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

username=$(wslvar USERNAME)


Создайте каталог Ubuntu: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

mkdir --parents /mnt/c/users/$username/.ubuntu/


Откройте каталог Ubuntu: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

cd /mnt/c/users/$username/.ubuntu


Загрузите репозиторий программного обеспечения Linux для продуктов Microsoft: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Ввод»

Ubuntu 20.04: wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb --output-document packages-microsoft-prod.deb Ubuntu 18.04: wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb --output-document packages-microsoft-prod.deb


Установите репозиторий программного обеспечения Linux для продуктов Microsoft: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Ввод»

sudo dpkg --install packages-microsoft-prod.deb


Обновите репозитории: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

sudo apt update


Установите транспорт APT для HTTPS: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Ввод»

sudo apt install --yes apt-transport-https


Обновите репозитории: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

sudo apt update


Установите .Net: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

sudo apt install --yes dotnet-sdk-5.0


Добавьте Arkane Systems в каталог исходного списка: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите "Enter"

sudo sh -c 'echo "deb [trusted=yes] https://wsl-translinux.arkane-systems.net/apt/ /" > /etc/apt/sources.list.d/ wsl-транслинукс.list'


Обновите репозитории: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

sudo apt update


Установите Genie: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

sudo apt install --yes systemd-genie


Создайте файл Sudoers: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите "Enter"

echo "$USER ALL=(ALL) NOPASSWD:/usr/bin/genie" | sudo EDITOR="tee" visudo --file /etc/sudoers.d/$USER


Создайте сценарий рабочего стола: Скопируйте код ниже этой инструкции Вставьте код в PowerShell Нажмите «Enter»


# CREATE BASH SCRIPT

# Store block of text with here document
create_bash_script=$(cat << end_of_string

# Define necessary environment variables
export DISPLAY="\$(cat /etc/resolv.conf | grep nameserver | awk '{ print \$2 }'):1.0"
export DESKTOP_SESSION="ubuntu"
export GDMSESSION="ubuntu"
export XDG_SESSION_DESKTOP="ubuntu"
export XDG_CURRENT_DESKTOP="ubuntu:GNOME"
export XDG_SESSION_TYPE="x11"
export XDG_BACKEND="x11"
export XDG_SESSION_CLASS="user"
export XDG_DATA_DIRS="/usr/local/share/:/usr/share/:/var/lib/snapd/desktop"
export XDG_CONFIG_DIRS="/etc/xdg"
export XDG_RUNTIME_DIR="\$HOME/xdg"
export XDG_CONFIG_HOME="\$HOME/.config"
export XDG_DATA_HOME="\$HOME/.local/share" 
export XDG_CACHE_HOME="\$HOME/.cache"
export XDG_DESKTOP_DIR="\$HOME/Desktop"
export XDG_DOCUMENTS_DIR="\$HOME/Documents"
export XDG_DOWNLOAD_DIR="\$HOME/Downloads"
export XDG_MUSIC_DIR="\$HOME/Music"
export XDG_PICTURES_DIR="\$HOME/Pictures"
export XDG_PUBLICSHARE_DIR="\$HOME/Public"
export XDG_TEMPLATES_DIR="\$HOME/Templates"
export XDG_VIDEOS_DIR="\$HOME/Videos"

# Start desktop environment
gnome-session

end_of_string
)

# Store username environment variable in lowercase
username=$(wslvar USERNAME | awk '{ print tolower($0) }') &&

# Save block of text in bash file
echo "${create_bash_script}" > "/mnt/c/users/$username/.ubuntu/02_start_desktop.sh"


Загрузите изображения ярлыков: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Ввод»

wget https://assets.ubuntu.com/v1/9fbc8a44-circle-of-friends-web.zip


Разархивируйте изображения ярлыков:Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

unzip -o 9fbc8a44-circle-of-friends-web.zip


Создайте значок ярлыка: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

convert -resize 64x64 ./circle-of-friends-web/png/cof_orange_hex.png ubuntu.ico


Выйдите из WSL2: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

и выйдите


Создайте сценарий VcXsrv: Скопируйте код ниже этой инструкции Вставьте код в PowerShell Нажмите «Enter»


# RELOAD VCXSRV SCRIPT

# Store username environment variable in lowercase
$username = $env:username.tolower()  

# Store block of text with here-string
$reload_vcxsrv_script = @"

# Stop vcxsrv proccess that contains "1.0" in the program window title
get-process vcxsrv | where { `$_.mainwindowtitle -like "*1.0*" } | stop-process

# Start vcxsrv process in a large program window on display number one
start-process "c:\program files\vcxsrv\vcxsrv.exe" -argument ":1 -ac -nowgl -multimonitors -dpms"

"@

# Save block of text in powershell file
echo "${reload_vcxsrv_script}" > $env:userprofile/.ubuntu/reload_vcxsrv.ps1


Создайте сценарий Ubuntu: Скопируйте код ниже этой инструкции Вставьте код в PowerShell Нажмите «Enter»


# CREATE VISUAL BASIC SCRIPT

# Store username environment variable in lowercase
$username = $env:username.tolower()           

# Store block of text with here-string
$create_vbs_script = @"

' Run PowerShell script in background
set application = createobject("shell.application")
application.shellexecute "powershell", "-file c:\users\admin\.ubuntu\01_reload_vcxsrv.ps1", "", "", 0

' Allow PowerShell script to complete
wscript.sleep 3000

' Run Bash script in background
set shell= createobject("wscript.shell")
shell.run "wsl sudo genie -c bash /mnt/c/users/admin/.ubuntu/02_start_desktop.sh", 0

"@

# Save block of text in bash file
echo "${create_vbs_script}" > $env:userprofile/.ubuntu/03_start_ubuntu.vbs


Создайте сценарий быстрого доступа: Скопируйте код ниже этой инструкции Вставьте код в PowerShell Нажмите «Enter»


# Store block of text with here-string
$create_shortcut_script = @"

# Define location variables
`$shortcut_location = "`$env:userprofile\.ubuntu\Ubuntu.lnk"
`$program_location = "`$env:userprofile\.ubuntu\03_start_ubuntu.vbs"

# Create shortcut
`$object = new-object -comobject wscript.shell
`$shortcut = `$object.createshortcut(`$shortcut_location)
`$shortcut.targetpath = `$program_location
`$shortcut.iconlocation = "`$env:userprofile\.ubuntu\ubuntu.ico"
`$shortcut.save()

"@

# Save block of text in powershell file
echo $create_shortcut_script > $env:userprofile/.ubuntu/04_create_shortcut.ps1


Откройте каталог Ubuntu: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

cd c:\users\admin\.ubuntu


Создайте ярлык: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите «Enter»

powershell.exe -file .\04_create_shortcut.ps1


Откройте каталог в Проводнике: Скопируйте команду ниже этой инструкции Вставьте команду в PowerShell Нажмите "Enter"

Проводник.


Запустите рабочий стол Ubuntu: Дважды щелкните ярлык «Ubuntu»


Откройте терминал: Нажмите «Действия» в верхнем левом углу. Введите «Терминал» в строку поиска Нажмите «Терминал»


Отключите блокировку экрана: Скопируйте команду ниже этой инструкции Вставьте команду в Терминал Нажмите «Enter»

gsettings set org.gnome.desktop.screensaver lock-enabled false


Установите Snap Store: Скопируйте команду ниже этой инструкции Вставьте команду в Терминал Нажмите «Ввод»

sudo snap install snap-store


1
ответ дан 14 December 2020 в 22:00

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

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