11 votos

Ejecutar ubuntu-desktop en WSL (Ubuntu 18.04 LTS)

Estoy ejecutando 18.04 LTS en el subsistema de Windows para Linux (WSL). He instalado el escritorio de Ubuntu ejecutando

sudo apt-get install ubuntu-desktop

Sin embargo, cuando inicio Linux sólo se inicia el terminal. ¿Cómo puedo hacer que se inicie el escritorio?

12voto

David Xue Puntos 179

El propio Windows 10 no es compatible con la GUI. Para ejecutar GUI en wsl es necesario instalar un servidor X y conseguir que se configure correctamente.

Le sugiero que instale VcXsrv para mostrar la GUI.

No soy capaz de ejecutar la GUI con éxito por sudo apt-get install ubuntu-desktop . Sin embargo, he instalado con éxito mate-desktop GUI en Debian y ubuntu .

Aquí están los pasos para mí para mostrar GUI por wsl. Usted puede comprobar mis videos en los pasos detallados Instalar GUI (escritorio mate) a Microsoft Windows Subsistema Linux

paso 1: instalar el subsistema Linux de Debian o Ubuntu: - PowerShell como administrador: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux - Microsoft Store: instalar "Debian" o "ubuntu"

paso 2: instalar mate tesktop para Debian : - abrir Debian en Windows 10. Escriba el siguiente comando - sudo apt-get update - sudo apt install task-mate-desktop

O instalar mate-desktop para Ubuntu - abrir la consola de Ubuntu en Windows 10 - sudo apt install tasksel - sudo apt update - sudo tasksel install ubuntu-mate-desktop

paso 3: instalar VcXsrv en Windows 10: - descargar de: https://sourceforge.net/projects/vcxsrv/ - abra XLauch, y utilice las siguientes opciones de configuración - select: "One large window" - Display number: 0 - next - Start no client - next - finish

paso 4: pantalla de configuración en la consola de linux: - export DISPLAY=:0 - export LIBGL_ALWAYS_INDIRECT=1

paso 5: iniciar el entorno de Mate-desktop: - ejecutar mate-session

Los pasos 3 y 4 son extremadamente importantes para mostrar la GUI en Windows 10 wsl.

3voto

Kye Burchard Puntos 54

Por muy buena que sea la WSL, realmente no está diseñada para ese tipo de cosas.

Si tu objetivo es conseguir el escritorio completo de Ubuntu, tiene mucho más sentido instalar una máquina virtual completa de Ubuntu, usando algo como Virtualbox, Hyper-V, etc. Buena suerte.

2voto

@gus33000 ha publicado en Twitter una solución que funciona:

https://twitter.com/gus33000/status/1188517307867381761

Un rápido resumen para la gente que quiera recrear esto:

Instalar VcXsrv

Instalar WSL

Instalar Ubuntu desde la tienda

sudo apt-get upgrade

sudo apt-get install ubuntu-desktop

sudo service dbus start

sudo service x11-common start

gnome-Shell --x11 -r

1voto

TheAltruist Puntos 31

enter image description here Las siguientes instrucciones fueron copiadas y pegadas de un artículo que escribí pero que perdió el formato original, los enlaces y las capturas de pantalla:

Fuente: Cómo instalar el escritorio de Ubuntu con una interfaz gráfica de usuario en WSL2


Descargar VcXsrv: Visite el sitio web oficial Haga clic en "Descargar".


Instale VcXsrv: Abra "vcxsrv-64.1.20.8.1.installer.exe" Haga clic en "Siguiente". Haga clic en "Instalar". Haga clic en "Cerrar".


Permitir el acceso a VcXsrv: Marque "Redes Privadas" Haga clic en "Permitir acceso".


Abre PowerShell: Pulse "⊞ Windows" Introduzca "PowerShell" en la barra de búsqueda Haga clic con el botón derecho en "Windows PowerShell" Haga clic en "Ejecutar como administrador"


Abrir WSL2: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Pulse "Enter".

wsl


Instalar Ubuntu Desktop: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter"

sudo apt --yes install ubuntu-desktop


Establezca la variable de nombre de usuario: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter".

username=$(wslvar USERNAME)


Cree el directorio de Ubuntu: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter"

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


Abra el directorio de Ubuntu: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter"

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


Descargue el repositorio de software de Linux para productos de Microsoft: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Pulse "Enter".

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


Instalar el repositorio de software de Linux para los productos de Microsoft: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter".

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


Actualizar los Repositorios: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter"

sudo apt update


Instale APT Transport for HTTPS: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter".

sudo apt install --yes apt-transport-https


Actualice los Repositorios: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter"

sudo apt update


Instale .Net: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter"

sudo apt install --yes dotnet-sdk-5.0


Añada Arkane Systems al directorio de la lista de fuentes: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter"

sudo sh -c 'echo "deb [trusted=yes] https://wsl-translinux.arkane-systems.net/apt/ /" > /etc/apt/sources.list.d/wsl-translinux.list'


Actualizar los Repositorios: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter"

sudo apt update


Instalar Genie: Copie el comando de abajo de estas instrucciones Pega el comando en PowerShell Pulsa "Enter".

sudo apt install --yes systemd-genie


Crear el archivo Sudoers: Copia el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter"

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


Cree el script: Copia el código de abajo de estas instrucciones Pegue el código en PowerShell Pulsa "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"

Descargue las imágenes de acceso directo: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter".

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


Descomprimir las imágenes de acceso directo: Copie el comando de debajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter".

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


Crea el icono de acceso directo: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter".

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


Salir de WSL2: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Pulse "Enter"

exit


Crear el VcXsrv script: Copia el código de abajo de estas instrucciones Pegue el código en PowerShell Presione "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

Crear el script: Copiar el código de abajo de estas instrucciones Pegue el código en PowerShell Presione "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

Cree el acceso directo script: Copiar el código de debajo de estas instrucciones Pegue el código en PowerShell Presione "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

Abra el directorio de Ubuntu: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter"

cd c:\users\admin\.ubuntu


Crear el acceso directo: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter".

powershell.exe -file .\04_create_shortcut.ps1


Abra el Directorio en el Explorador: Copie el comando de abajo de estas instrucciones Pegue el comando en PowerShell Presione "Enter".

explorer .


Inicie el escritorio de Ubuntu: Haga doble clic en el acceso directo a "Ubuntu".


Terminal abierto: Haga clic en "Actividades" en la esquina superior izquierda Introduzca "Terminal" en la barra de búsqueda Haga clic en "Terminal".


Desactivar el bloqueo de pantalla: Copie el comando de abajo de estas instrucciones Pegue el comando en el Terminal Pulsa "Enter"

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


Instale el Snap Store: Copie el comando de abajo de estas instrucciones Pegue el comando en el Terminal Pulse "Enter".

sudo snap install snap-store


EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X