Microsoft Windows 是一种流行的操作系统。Windows 10 带来了一项名为 WSL(适用于 Linux 的 Windows 子系统)的新功能。这是一项可选功能,允许开发人员和高级用户直接在 Windows 上运行 GNU/Linux 环境,而无需传统的虚拟化或双引导配置。在本指南中,查看如何使用 WSL 在 Windows 10 中启动 Debian GUI。WSL 上的 DebianWSL 工具最初是由微软与 Ubuntu 的创建者 Canonical 合作开发的。它基本上是一个基于 Ubuntu 的内核兼容层。2020 年,微软发布了 WSL 2。它比 WSL 1 带来了几项重要的改进。它提供了更好的系统兼容性、更好的 VM 管理、完整的 Linux 内核支持等等。查看WSL 1 和 WSL 2 之间的区别。请注意,WSL 2 仅适用于 Windows 10 version 2004 build 19041 或更高版本。运行以下命令以验证你正在运行的 Windows 10 版本。
$ winver
文章图片
因为 WSL 最初是基于 Ubuntu 的,所以默认支持 Debian。Debian for WSL可从 Microsoft Store 获得。但是,我们将演示如何在没有 Microsoft 帐户的情况下安装 Debian。对于 Windows,所有命令都将在具有管理权限的 Windows PowerShell 上运行。它相当于运行sudo shell的 Linux 。要以管理权限启动 PowerShell,请按“Win + X”并选择“Windows PowerShell (Admin)”。
文章图片
启用 WSL默认情况下不启用 WSL 等可选功能。幸运的是,启用 WSL 非常简单。在 PowerShell 中运行以下命令。
$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
文章图片
WSL 2 还需要虚拟机平台功能。
$ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
文章图片
这些更改需要重新启动系统才能完全正常运行。重新启动后,以管理员权限启动 PowerShell。将 WSL 2 强制为默认版本。
$ wsl --set-default-version 2
文章图片
请注意,如果你运行的是 Windows 10 64 位版本,那么你可能需要下载并安装 WSL 2 的 Linux 内核更新包。下载和安装 Debian首先,查看 WSL 支持的所有可用发行版。
$ wsl --list --online
文章图片
告诉 WSL 安装 Debian。Debian 可作为可从Microsoft Store安装的软件包获得。
$ wsl --install -d Debian
文章图片
该过程可能需要几分钟才能完成。配置 Debian现在安装了 Debian。如果你使用 WSL 安装,则会自动弹出一个新的 shell。在第一次启动时,Debian shell 会要求创建一个新用户。
文章图片
如果你想稍后访问 Debian,请使用以下 WSL 命令。从现在开始,我将使用Windows 终端以方便使用。
$ wsl -d Debian
文章图片
更新 APT 缓存并升级所有包。
$ sudo apt update &
&
sudo apt upgrade -y
接下来,我们需要验证我们是否正在运行最新的 Debian 版本。在撰写本指南时,最新的稳定版本是 Debian 11,代号为Bullseye。
$ cat /etc/os-release
文章图片
就我而言,它是 Debian 9 (stretch),而它应该是 Debian 11 (bullseye)。它需要发行版升级才能获得最新的 Debian 版本。首先,制作sources.list文件的备份副本。
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
文章图片
从sources.list文件中,将stretch (Debian 9) 的所有实例替换为bullseye (Debian 11)。这将有效地告诉 APT 使用 Debian 11 的软件包。在文本编辑器中打开sources.list并将所有的 stretch 实例替换为Bullseye。
$ sudo nano /etc/apt/sources.list
文章图片
这是 Debian 11 Bullseye 的存储库示例列表。
$ deb http://deb.debian.org/debian bullseye main contrib non-free
$ deb http://deb.debian.org/debian bullseye-updates main contrib non-free
$ deb http://security.debian.org/debian-security bullseye-security main contrib non-free
文章图片
对 sed 感兴趣?查看这个关于 50 个 sed 示例的超级指南。现在,再次运行 APT 更新命令。
$ sudo apt clean &
&
sudo apt update
文章图片
$ sudo apt full-upgrade
文章图片
它将在此过程中重新启动各种服务。选择“Yes”。
文章图片
我们现在可以安全地摆脱系统上过时的软件包。
$ sudo apt autoremove
文章图片
重新启动 Debian 会话以使更改生效。验证更改。
$ cat /etc/os-release
文章图片
配置图形用户界面此时 Debian 系统功能齐全。但是,与系统交互的唯一方法是通过命令行界面。默认情况下没有 GUI 可供使用。我们可以通过实施 VNC 来规避这一点。配置过程有点复杂,但非常可行。先决条件这种方法有几个先决条件。首先,确保 WSL 发行版配置为与 WSL 2 一起运行。
$ wsl --set-version Debian 2
文章图片
安装组件现在,访问 Debian shell。我们需要一些额外的组件,比如curl和wget。
$ sudo apt update &
&
sudo apt install -y curl wget
文章图片
我们将安装 tasksel,这是一个用于管理各种桌面和服务组件的超级方便的工具。运行以下 APT 命令。
$ sudo apt install tasksel
文章图片
使用sudo权限运行tasksel。
$ sudo tasksel
文章图片
它将显示包组和捆绑包的列表。按空格键选择/取消选择一个组。选择所需的后,选择“确定”。该工具将下载并安装所有必要的组件。这将需要一些时间。
文章图片
安装 VNC 服务器下一步是安装 VNC 服务器。为此,我们将安装TigerVNC。
$ sudo apt-get install tigervnc-standalone-server
文章图片
安装 .NET 运行时.NET 是 Microsoft 为 Windows、Linux 和 macOS 构建应用程序的通用框架。我们在配置的下一部分需要它。运行以下命令以安装 .NET 运行时。如需更深入的安装说明,请查看Microsoft的官方 .NET 安装指南。
$ wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
文章图片
$ sudo apt install ./packages-microsoft-prod.deb
文章图片
$ rm packages-microsoft-prod.deb
文章图片
$ sudo apt update &
&
sudo apt install apt-transport-https
文章图片
$ sudo apt update &
&
sudo apt install dotnet-runtime-5.0
文章图片
安装systemd-genieWSL 本身只是一个准系统的 Linux 框架实现。使用 systemd-genie 是为 Debian 提供一个成熟且功能齐全的 Linux 框架的方法。查看更多关于 systemd-genie。我们已经安装了它的依赖项(.NET 运行时)。剩下的就是配置 systemd-genie 存储库并安装软件包。查看有关在 Debian 上安装 systemd-genie 的深入文档。首先,为systemd-genie配置 APT 存储库。
$ wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg
文章图片
$ chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg
文章图片
$ cat <
<
EOF > /etc/apt/sources.list.d/wsl-transdebian.list
$ deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
$ deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
$ EOF
文章图片
$ apt update
文章图片
最后,安装 systemd-genie。
$ sudo apt install systemd-genie
文章图片
所有必要的工具都已安装。是时候配置它们以获得预期的行为了。配置 VNC 服务器密码在 VNC 设置中,每个用户都将拥有唯一的密码。对于完整的功能,我们至少需要三个密码,以下每个用户一个。
- root
- gdm
- < current_user>
$ vncpasswd
文章图片
接下来,为root配置 VNC 密码。
$ sudo -H vncpasswd
文章图片
最后,为 GDM 配置 VNC 密码。请注意,如果你没有选择安装 GNOME 桌面环境,则可以跳过此步骤。
$ sudo -H -u Debian-gdm vncpasswd
文章图片
用 Xvnc 替换默认的 X显示管理器的默认功能是为每个用户会话(包括登录屏幕)调用 X 个实例。但是,因为我们将使用 VNC 服务器,所以它不会被削减。要使用 VNC,Xvnc 是合适的候选者。接下来,我们的目标是将 X 交换为 Xvnc。它需要调整调用 Xvnc 而不是 X/Xorg 显示服务的 Xorg 脚本。在继续之前,始终建议备份现有的 Xorg 脚本。
$ sudo mv /usr/bin/Xorg /usr/bin/Xorg.old
文章图片
现在,创建一个新的 Xorg 脚本。
$ sudo nano /usr/bin/Xorg.new
输入以下代码。
#!/bin/bash
for arg do
shift
case $arg in
vt*)
set -- "$@" "${arg//vt/tty}"
;
;
-keeptty)
;
;
-novtswitch)
;
;
*)
set -- "$@" "$arg"
;
;
esac
done
# display geometry
command=("/usr/bin/Xvnc" "-geometry" "1366x768" "-PasswordFile" "${HOME:-/root}/.vnc/passwd" "$@")
systemd-cat -t /usr/bin/Xorg echo "launching Xvnc:" "${command[
@]}"
exec "${command[
@]}"
文章图片
保存文件并关闭编辑器。该文件必须具有正确的文件权限才能正常工作。
$ sudo chmod 0755 /usr/bin/Xorg.new
创建指向该文件的链接以模拟原始 Xorg 脚本。
$ sudo ln -sf /usr/bin/Xorg.new /usr/bin/Xorg
文章图片
配置环境变量我们需要调整一些环境变量,以便Xorg读取执行精灵命令的用户。为此,我们需要调整根用户和当前用户的bashrc文件。请注意,bashrc 与 bash_profile 不同。打开当前用户的bashrc。
$ nano ~/.bashrc
在文件末尾添加以下代码。
export XDG_RUNTIME_DIR=/run/user/$UID
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2;
exit;
}'):0.0
sudo /etc/init.d/dbus start &
> /dev/null
文章图片
对 root 用户的bashrc文件执行相同操作。
$ su -
$ nano ~/.bashrc
export XDG_RUNTIME_DIR=/run/user/$UID
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2;
exit;
}'):0.0
sudo /etc/init.d/dbus start &
> /dev/null
文章图片
最后,为当前用户重新加载 bashrc。
$ source ~/.bashrc
文章图片
启动systemd-genie现在,systemd 被配置为让gdm自动启动并创建一个 X 显示到登录实例的实例。由于配置的原因,它将改为创建 Xvnc 实例。它将从 5900 开始收听。下一个命令将显示消息“connecting to systemd”,然后是一些错误。错误是预料之中的。你应该登陆登录屏幕。
$ genie -l
瞧!你现在已经成功登录到在 WSL 2 下运行的支持 GUI 的 Debian!剩下的就是通过 VNC 连接到 WSL 服务器。以下命令将报告服务器 IP 地址。
$ hostname -I
文章图片
要连接到系统,请使用 VNC 客户端(在端口 5900 上)。要登录,请使用gdm VNC 密码。这应该让你进入登录屏幕。最后的想法对于 Windows 用户,WSL 是一种很好的方式来习惯 Linux 世界,而无需从头开始学习所有内容。本指南演示了在 VNC 服务器 (TigerVNC) 的帮助下,在 WSL 上使用 GUI 安装和配置 Debian 11 的推荐方法。通过合适的 VNC 配置,你可以实现更多目标。查看有关在 Debian上安装和配置 VNC 服务器的深入指南。
推荐阅读
- 如何在Windows 10上使用Kali Linux应用程序()
- 如何从 Windows 10 中删除 Ubuntu Dual Boot()
- 本文教你windows10图标设置
- 本文教你安装激活win10 msdn
- 本文教你升级安装win10
- 本文教你win10如何取得推送修好补丁
- 本文教你电脑win10专业版怎样激活
- 本文教你如何更新win10显卡驱动
- 本文教你win10开始菜单没反应怎样处理