我在 Windows 子系统 Linux (WSL) 上运行 18.04 LTS。我通过运行安装了 Ubuntu 桌面
sudo apt-get install ubuntu-desktop
但是,当我启动 Linux 时,只有终端启动。如何让桌面启动?
答案1
Windows 10 本身不支持 GUI。为了在 wsl 中运行 GUI,您需要安装 X 服务器并使其正确配置。
我建议你安装虚拟主机显示 GUI。
我无法通过 成功运行 GUI sudo apt-get install ubuntu-desktop
。但是,我已成功安装了 mate-desktop GUIDebian和Ubuntu。
以下是我通过 wsl 显示 GUI 的步骤。您可以查看我的视频了解详细步骤将 GUI(mate 桌面)安装到 Microsoft Windows Subsystem Linux
步骤1:
安装 Debian 或 Ubuntu Linux 子系统: - 以管理员身份使用 PowerShell:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- Microsoft Store:安装“Debian”或“ubuntu”
第2步:
安装 mate teststDebian:- 在 Windows 10 中打开 Debian。输入以下命令 - sudo apt-get update
-sudo apt install task-mate-desktop
或者安装 mate-desktopUbuntu
- 在 Windows 10 中打开 Ubuntu 控制台 - sudo apt install tasksel
- sudo apt update
-sudo tasksel install ubuntu-mate-desktop
步骤3:
安装虚拟主机在 Windows 10 中: - 下载自:https://sourceforge.net/projects/vcxsrv/
- 打开 XLauch,并使用以下选项进行设置
- select: "One large window" - Display number: 0 - next - Start no client - next - finish
步骤4:
在 Linux 控制台中设置显示:- export DISPLAY=:0
-export LIBGL_ALWAYS_INDIRECT=1
第 5 步:
启动 Mate 桌面环境:-运行mate-session
步骤 3 和步骤 4 对于在 Windows 10 WSL 中显示 GUI 极为重要。
答案2
尽管 WSL 很棒,但它实际上并不是为那种事情设计的。
如果您的目标是获得完整的 Ubuntu 桌面,那么使用 Virtualbox、Hyper-V 等软件安装完整的 Ubuntu 虚拟机更有意义。祝你好运!
答案3
@gus33000 在 Twitter 上发布了一个可行的解决方案:
https://twitter.com/gus33000/status/1188517307867381761
对于想要重现这种情况的人来说,简要介绍一下:
安装 VcXsrv
安装 WSL
从商店安装 Ubuntu
sudo apt-get 升级
sudo apt-get 安装 ubuntu-desktop
sudo 服务 dbus 启动
sudo 服务 x11-common 启动
gnome-shell --x11 -r
答案4
以下说明是从我写的一篇文章中复制粘贴的,但丢失了原始格式、链接和屏幕截图:
来源: 如何在 WSL2 中安装带有图形用户界面的 Ubuntu 桌面
下载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
下载 Microsoft 产品的 Linux 软件存储库:从以下说明复制命令,将命令粘贴到 PowerShell 中,按“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
为 Microsoft 产品安装 Linux 软件存储库:复制以下说明中的命令,将命令粘贴到 PowerShell 中,按“Enter”
sudo dpkg --install packages-microsoft-prod.deb
更新存储库:从以下说明复制命令,将命令粘贴到 PowerShell 中,按“Enter”
sudo apt update
安装用于 HTTPS 的 APT Transport:从以下说明中复制命令,将命令粘贴到 PowerShell 中,按“Enter”
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-translinux.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 中,按“Enter”
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”
exit
创建 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”
explorer .
启动 Ubuntu 桌面:双击“Ubuntu”快捷方式
打开终端:点击左上角的“活动” 在搜索栏中输入“终端” 点击“终端”
禁用屏幕锁:复制以下说明中的命令,将命令粘贴到终端中按“Enter”
gsettings set org.gnome.desktop.screensaver lock-enabled false
安装 Snap Store:复制以下说明中的命令,将命令粘贴到终端中,按“Enter”
sudo snap install snap-store