乘风破浪,遇见最美Windows 11之适用于Linux的Windows子系统 - 两种开启姿势(商店安装+内置启用)并运行GUI

什么是WSL

适用于Linux的Windows子系统(Windows Subsystem for Linux,WSL),是Windows系统的一个可选扩展功能,可让开发人员按原样运行GNU/Linux环境。

image

  • 包括大多数命令行工具、实用工具和应用程序。
  • 且不会产生传统虚拟机或双启动设置开销。

之前我们已经通过文章《Windows10上开启WSL2(Windows Subsystem for Linux 2)及Docker Desktop For Windows》介绍过如何在Windows 10上开启WSL2。

接下来,我们重点介绍下,如何在全新一代操作系统Windows 11中开启WSL,这里主要是介绍商店安装内置启用两种方式。

如果你已经升级到Windows 11,那么推荐你优先使用"商店安装"的方式来使用WSL,这种方式具备如下特点:

  1. 商店版WSL并非一个新版本,这只是获取及更新WSL的一种新方式。
  2. 商店版WSL可以帮助你以最快获取WSL的新特性。
  3. 当商店版WSL更新时,不再需要更新操作系统版本,它可以独立更新,以往它属于Windows版本的一部分。

商店安装

https://devblogs.microsoft.com/commandline/a-preview-of-wsl-in-the-microsoft-store-is-now-available/

1. 确保系统处于Windows 11最新版

从商店安装WSL这个操作对系统的要求是系统版本必须大于22000,这意味着Windows 11首次正式发行版(22000.194)及最新Insider通道的预览版都可以支持。

image

2. 命令行手动开启虚拟机平台依赖

在Windows 11开始菜单上右键,从"Windows终端(管理员)"进入,以管理员权限打开Windows终端,执行如下命令开启WSL依赖的"虚拟机平台"功能。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all

image

回答"Y",立即重启计算机。

3. 从微软商店(Microsoft Store)安装WSL

https://www.microsoft.com/store/productId/9P9TQF7MRM4R

ms-windows-store://pdp/?productid=9P9TQF7MRM4R

https://aka.ms/wslstorepage

image

点击"获取"按钮启动下载并安装。

image

可通过wsl命令来检查安装结果:

wsl

image

wsl --status

image

4. WSLg目前已经内置到商店版WSL

https://aka.ms/wslg

适用于Linux的Windows子系统的可视化界面(Windows Subsystem for Linux GUI, WSLg),已经被内置到商店版WSl中,无需额外安装了。

5. 安装喜爱的Linux发行版

https://aka.ms/wslstore

image

如果是才做可视化操作或者老系统命令行操作开启的,那么开启WSL之后,我们还需要前往Microsoft Store,寻找你喜爱的Linux发行版进行安装即可。

image

内置启用

如果你还是Windows 10或者已经是Windows 11,但是不希望使用商店安装的方式,那么我们仍然可以使用系统内置的方式启用WSL。

这里仍然包含两种方式来开启Windows系统内置的WSL.

1. 可视化操作开启

a. 首选我们需要前往Windows 11设置

image

通过开始菜单,我们可以找到系统设置入口,进入后切换到"应用"设置分组,找到"可选功能",点击它进入。

b. 进入更多Windows功能设置

image

遗憾的,虽然微软已经让众多功能都可以被可选,但是WSL的开启,仍然被藏在传统的设置界面,所以我们需要拉到"可选功能"设置页面的最底部,找到"更多Windows功能"的设置入口,点击它进入。

c. 勾选WSL所需的Windows功能依赖项

image

在"Windows功能"设置对话框中,我们需要拉到最底部,找到并勾选好"适用于Linux的Windows子系统"和"虚拟机平台"这两个选项,然后点击"确定"按钮,接下来会有一个进度条来等待处理。

image

d. 重启Windows 11系统生效WSL

image

根据提示重启系统生效。

回来之后,我们可以在Windows终端中输入wsl这个关键词来查看是否开启成功。

image

wsl --status

image

2. 命令行操作开启(Windows 11/ >= Win10 v2004)

https://docs.microsoft.com/en-us/windows/wsl/install

从Win10 v2004版本开始,系统内置了支持Wsl安装的命令行指令,我们可以直接通过如何指令一键开启并安装:

wsl --install

image

这个命令,默认会安装Ubuntu发行版,如果你需要指定其他Linux发行版,那么建议-d来指定。

wsl --install -d $DistributionName

image

但是如何知道目前有哪些发行版可选呢?可以通过命令来检索:

wsl --list --online

image

3. 命令行操作开启(< Win10 v2004)

https://docs.microsoft.com/en-us/windows/wsl/install-manual

a. 以管理员权限打开Windows终端

image

在Windows 11开始菜单上右键,可以看到"Windows终端(管理员)"菜单,点击它,以管理员权限打开Windows终端。

b. 依次执行如下命令来开启WSL

# 安装适用于 Linux 的 Windows 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# 启用“虚拟机平台”可选组件
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

image

image

c. 重启Windows 11系统生效WSL

最终,还是需要重启才能生效的。

回来之后,我们可以在Windows终端中输入wsl这个关键词来查看是否开启成功。

image

wsl --status

image

4. 安装喜爱的Linux发行版

https://aka.ms/wslstore

image

如果是才做可视化操作或者老系统命令行操作开启的,那么开启WSL之后,我们还需要前往Microsoft Store,寻找你喜爱的Linux发行版进行安装即可。

image

安装并启用Linux发行版可视化界面

https://docs.microsoft.com/zh-cn/windows/wsl/tutorials/gui-apps

基于适用于Linux的Windows子系统的可视化界面(Windows Subsystem for Linux GUI, WSLg),从WSL2开始我们已经可以开启Linux发行版的GUI桌面应用了。

先安装对应的vGPU驱动程序

若要运行Linux GUI应用,你应该首先安装与你的系统匹配的预览驱动程序。这使你能够使用虚拟GPU(vGPU)以便你可以从硬件加速OpenGL呈现中获益。

a. NVIDIA

image

image

b. AMD

image

image

image

检查WSL更新确保到最新版本

以管理员权限运行Windows终端,执行如下命令

wsl --update

image

若要立即生效,需要执行如下命令来重启:

wsl --shutdown

image

确保分发包的索引更新到最新

sudo apt update

image

尝试在Linux中安装带可视化GUI界面的应用

a. 安装Gedit

Gedit是GNOME桌面环境的默认文本编辑器。

sudo apt install gedit -y

image

输入gedit命令启动

image

b. 安装GIMP

GIMP是一个免费的开源光栅图形编辑器,用于图像操作和图像编辑、自由格式的绘图、不同图像文件格式之间的转换,以及更专门化的任务。

sudo apt install gimp -y

c. 安装Nautilus

Nautilus(也称为GNOME文件)是GNOME桌面的文件管理器。(类似Windows文件资源管理器) 。

sudo apt install nautilus -y

image

输入nautilus命令启动

image

d. 安装VLC

VLC是一个免费的开源跨平台多媒体播放器和一个播放大多数多媒体文件的框架。

sudo apt install vlc -y

d. 安装X11

X11是Linux窗口系统,这是随附的应用和工具的其他集合,如xclock、xcalc计算器、用于剪切和粘贴的xclipboard、xev用于事件测试等。

sudo apt install x11-apps -y

e. 安装Linux版Google Chrome

  1. 将目录更改为临时文件夹:cd /tmp
  2. 使用wget下载:sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
  3. 获取当前稳定版本:sudo dpkg -i google-chrome-stable_current_amd64.deb
  4. 修复包:sudo apt install --fix-broken -y
  5. 配置包:sudo dpkg -i google-chrome-stable_current_amd64.deb

f. 安装Linux版Microsoft Teams

  1. 将目录更改为临时文件夹:cd /tmp
  2. 使用卷下载包:sudo curl -L -o "./teams.deb" "https://teams.microsoft.com/downloads/desktopurl?env=production&plat=linux&arch=x64&download=true&linuxArchiveType=deb"
  3. 使用apt进行安装:sudo apt install ./teams.deb -y

g. 安装Linux版Microsoft Edge

https://www.microsoftedgeinsider.com/zh-cn/download?platform=linux-deb

## Setup
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge-beta.list'
sudo rm microsoft.gpg
## Install
sudo apt update
sudo apt install microsoft-edge-beta

image

输入microsoft-edge命令启动

使用及开发进阶指南

从老版本WSL升级到最新WSL

以管理员权限运行Windows终端,执行如下命令,可以检查WSL内核的更新。

wsl --update

image

检索本地已安装的Linux发行版

wsl --list

image

image

首次启用并设置Linux发行版

https://docs.microsoft.com/en-us/windows/wsl/setup/environment

https://aka.ms/wslusers

从商店安装完喜爱的Linux发行版之后,我们点击打开,会有个初始化设置的过程,我们需要设置好新的账号信息。

image

输入新创建用户的账号和密码即可。

image

首次使用,还建议立即执行Linux发行版的包管理的更新操作

sudo apt update && sudo apt upgrade

image

image

从Windows终端进入Linux发行版

image

因为Windows 11内置了Windows新终端,我们实际上可以直接从它进入到Linux发行版,这样使用起来更加便捷。

从资源管理器访问Linux所在目录

\\wsl$

在Windows 11资源管理器的地址栏中输入如上地址,回车,即可访问到已安装的Linux发行版的目录。

image

点击对应的Linux发行版名称进入,可以查看到Linux内部的目录。

image

以资源管理器形式访问Linux指定目录

如果在Linux终端中,我们希望查看当前Linux目录对应的Windows系统中实际存储位置的时候,我们可以在终端中输入如下命令:

explorer.exe .

image

这时候,当前所处的Linux目录就被资源管理器打开了。

image

我们会发现,原来Linux的这个根目录对应的目录是:\\wsl.localhost\Ubuntu-20.04

关于在Linux发行版中项目存储目录

https://docs.microsoft.com/zh-cn/windows/wsl/filesystems#file-storage-and-performance-across-file-systems

建议不要跨操作系统使用文件,除非有这么做的特定原因。若想获得最快的性能速度,请将文件存储在WSL文件系统中,前提是在Linux命令行(Ubuntu、OpenSUSE等)中工作。 如果使用Windows命令行(PowerShell、命令提示符)工作,请将文件存储在Windows文件系统中。

比如在存储WSL项目文件的时候,建议使用Linux的文件系统目录,比如:\\wsl$\<DistroName>\home\<UserName>\Project,而不是Windows根目录,比如:/mnt/c/Users/<UserName>/Project$/C:\Users\<UserName>\Project

在Linux发行版中安装并启用Git

通常来说,默认已经在大多数"适用于Linux的Windows子系统"安装了Git,但是如果想要获取最新版本,可通过如下命令:

sudo apt-get install git

image

如果还未配置Git的用户名,可通过命令配置:

git config --global user.name "Your Name"

如果还未配置Git的电子邮件,可通过命令配置:

git config --global user.email "youremail@domain.com"

基于Docker和WSL远程开发应用

若要开始使用Docker和WSL来开发应用,建议使用VS Code,以及WSL扩展和Docker扩展。

  • 安装VSCode远程WSL扩展。此扩展使你能够在VS Code中打开在WSL上运行的Linux项目,(无需担心路径问题、二进制兼容性或)的其他跨操作系统挑战。
  • 安装VScodeRemote-Containers扩展。此扩展使你能够在容器中打开你的项目文件夹或存储库,利用Visual Studio Code的完整功能集来完成容器中的开发工作。
  • 安装VSCodeDocker扩展。此扩展添加了从VSCode内部生成、管理和部署容器化应用程序的功能。(需要Remote-Container扩展,才能实际使用容器作为开发环境。)

在Docker for Desktop设置中,启用WSL的Docker集成。

image

在Linux发行版中使用Visual Studio Code打开项目

https://docs.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers

以示例项目helloworld-django为例,我们先把它git clone下来,前往Linux当前用户目录。

cd /home/userName/

执行Git-Clone命令,把项目拉下来。

git clone https://github.com/mattwojo/helloworld-django.git

image

进入这个项目文件夹中

cd helloworld-django

image

通过Visual Studio Code打开当前目录

code .

image

如果我们安装了WSL和Docker集成的VS Code插件的话,那么会启动远程连接。

image

通过命令面板调用"remote-container:open folder in container".

image

点击OK

image

然后将会打开VsCode新实例,开始生成Docker镜像,并且启动容器。

image

点击运行按钮,添加调试文件,然后开始调式

image

Docker映像存储文件夹

https://docs.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers

Docker创建了两个用于存储数据的发行版文件夹:

  • \\wsl.localhost\docker-desktop
  • \\wsl.localhost\docker-desktop-data

image

参考

posted @ 2021-10-12 17:04  TaylorShi  阅读(4813)  评论(0编辑  收藏  举报