什么是WSL
適用於Linux的Windows子系統(Windows Subsystem for Linux
,WSL
),是Windows系統的一個可選擴展功能,可讓開發人員按原樣運行GNU/Linux環境。
- 包括大多數命令行工具、實用工具和應用程序。
- 且不會產生傳統虛擬機或雙啟動設置開銷。
之前我們已經通過文章《Windows10上開啟WSL2(Windows Subsystem for Linux 2)及Docker Desktop For Windows》介紹過如何在Windows 10上開啟WSL2。
接下來,我們重點介紹下,如何在全新一代操作系統Windows 11中開啟WSL,這里主要是介紹商店安裝和內置啟用兩種方式。
如果你已經升級到Windows 11,那么推薦你優先使用"商店安裝"的方式來使用WSL,這種方式具備如下特點:
- 商店版WSL並非一個新版本,這只是獲取及更新WSL的一種新方式。
- 商店版WSL可以幫助你以最快獲取WSL的新特性。
- 當商店版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通道的預覽版都可以支持。
2. 命令行手動開啟虛擬機平台依賴
在Windows 11開始菜單上右鍵,從"Windows終端(管理員)"進入,以管理員權限打開Windows終端,執行如下命令開啟WSL依賴的"虛擬機平台"功能。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all
回答"Y",立即重啟計算機。
3. 從微軟商店(Microsoft Store)安裝WSL
ms-windows-store://pdp/?productid=9P9TQF7MRM4R
點擊"獲取"按鈕啟動下載並安裝。
可通過wsl
命令來檢查安裝結果:
wsl
wsl --status
4. WSLg目前已經內置到商店版WSL
適用於Linux的Windows子系統的可視化界面(Windows Subsystem for Linux GUI
, WSLg
),已經被內置到商店版WSl中,無需額外安裝了。
5. 安裝喜愛的Linux發行版
如果是才做可視化操作或者老系統命令行操作開啟的,那么開啟WSL之后,我們還需要前往Microsoft Store,尋找你喜愛的Linux發行版進行安裝即可。
內置啟用
如果你還是Windows 10或者已經是Windows 11,但是不希望使用商店安裝的方式,那么我們仍然可以使用系統內置的方式啟用WSL。
這里仍然包含兩種方式來開啟Windows系統內置的WSL.
1. 可視化操作開啟
a. 首選我們需要前往Windows 11設置
通過開始菜單,我們可以找到系統設置入口,進入后切換到"應用"設置分組,找到"可選功能",點擊它進入。
b. 進入更多Windows功能設置
遺憾的,雖然微軟已經讓眾多功能都可以被可選,但是WSL的開啟,仍然被藏在傳統的設置界面,所以我們需要拉到"可選功能"設置頁面的最底部,找到"更多Windows功能"的設置入口,點擊它進入。
c. 勾選WSL所需的Windows功能依賴項
在"Windows功能"設置對話框中,我們需要拉到最底部,找到並勾選好"適用於Linux的Windows子系統"和"虛擬機平台"這兩個選項,然后點擊"確定"按鈕,接下來會有一個進度條來等待處理。
d. 重啟Windows 11系統生效WSL
根據提示重啟系統生效。
回來之后,我們可以在Windows終端中輸入wsl
這個關鍵詞來查看是否開啟成功。
wsl --status
2. 命令行操作開啟(Windows 11/ >= Win10 v2004)
從Win10 v2004版本開始,系統內置了支持Wsl安裝的命令行指令,我們可以直接通過如何指令一鍵開啟並安裝:
wsl --install
這個命令,默認會安裝Ubuntu發行版,如果你需要指定其他Linux發行版,那么建議-d
來指定。
wsl --install -d $DistributionName
但是如何知道目前有哪些發行版可選呢?可以通過命令來檢索:
wsl --list --online
3. 命令行操作開啟(< Win10 v2004)
a. 以管理員權限打開Windows終端
在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
c. 重啟Windows 11系統生效WSL
最終,還是需要重啟才能生效的。
回來之后,我們可以在Windows終端中輸入wsl
這個關鍵詞來查看是否開啟成功。
wsl --status
4. 安裝喜愛的Linux發行版
如果是才做可視化操作或者老系統命令行操作開啟的,那么開啟WSL之后,我們還需要前往Microsoft Store,尋找你喜愛的Linux發行版進行安裝即可。
安裝並啟用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
b. AMD
檢查WSL更新確保到最新版本
以管理員權限運行Windows終端,執行如下命令
wsl --update
若要立即生效,需要執行如下命令來重啟:
wsl --shutdown
確保分發包的索引更新到最新
sudo apt update
嘗試在Linux中安裝帶可視化GUI界面的應用
a. 安裝Gedit
Gedit是GNOME桌面環境的默認文本編輯器。
sudo apt install gedit -y
輸入gedit
命令啟動
b. 安裝GIMP
GIMP是一個免費的開源光柵圖形編輯器,用於圖像操作和圖像編輯、自由格式的繪圖、不同圖像文件格式之間的轉換,以及更專門化的任務。
sudo apt install gimp -y
c. 安裝Nautilus
Nautilus(也稱為GNOME文件)是GNOME桌面的文件管理器。(類似Windows文件資源管理器) 。
sudo apt install nautilus -y
輸入nautilus
命令啟動
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
- 將目錄更改為臨時文件夾:
cd /tmp
- 使用wget下載:
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- 獲取當前穩定版本:
sudo dpkg -i google-chrome-stable_current_amd64.deb
- 修復包:
sudo apt install --fix-broken -y
- 配置包:
sudo dpkg -i google-chrome-stable_current_amd64.deb
f. 安裝Linux版Microsoft Teams
- 將目錄更改為臨時文件夾:
cd /tmp
- 使用卷下載包:
sudo curl -L -o "./teams.deb" "https://teams.microsoft.com/downloads/desktopurl?env=production&plat=linux&arch=x64&download=true&linuxArchiveType=deb"
- 使用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
輸入microsoft-edge
命令啟動
使用及開發進階指南
從老版本WSL升級到最新WSL
以管理員權限運行Windows終端,執行如下命令,可以檢查WSL內核的更新。
wsl --update
檢索本地已安裝的Linux發行版
wsl --list
首次啟用並設置Linux發行版
https://docs.microsoft.com/en-us/windows/wsl/setup/environment
從商店安裝完喜愛的Linux發行版之后,我們點擊打開,會有個初始化設置的過程,我們需要設置好新的賬號信息。
輸入新創建用戶的賬號和密碼即可。
首次使用,還建議立即執行Linux發行版的包管理的更新操作
sudo apt update && sudo apt upgrade
從Windows終端進入Linux發行版
因為Windows 11內置了Windows新終端,我們實際上可以直接從它進入到Linux發行版,這樣使用起來更加便捷。
從資源管理器訪問Linux所在目錄
\\wsl$
在Windows 11資源管理器的地址欄中輸入如上地址,回車,即可訪問到已安裝的Linux發行版的目錄。
點擊對應的Linux發行版名稱進入,可以查看到Linux內部的目錄。
以資源管理器形式訪問Linux指定目錄
如果在Linux終端中,我們希望查看當前Linux目錄對應的Windows系統中實際存儲位置的時候,我們可以在終端中輸入如下命令:
explorer.exe .
這時候,當前所處的Linux目錄就被資源管理器打開了。
我們會發現,原來Linux的這個根目錄對應的目錄是:\\wsl.localhost\Ubuntu-20.04
關於在Linux發行版中項目存儲目錄
建議不要跨操作系統使用文件,除非有這么做的特定原因。若想獲得最快的性能速度,請將文件存儲在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
如果還未配置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集成。
在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
進入這個項目文件夾中
cd helloworld-django
通過Visual Studio Code打開當前目錄
code .
如果我們安裝了WSL和Docker集成的VS Code插件的話,那么會啟動遠程連接。
通過命令面板調用"remote-container:open folder in container".
點擊OK
然后將會打開VsCode新實例,開始生成Docker鏡像,並且啟動容器。
點擊運行按鈕,添加調試文件,然后開始調式
Docker映像存儲文件夾
https://docs.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers
Docker創建了兩個用於存儲數據的發行版文件夾:
\\wsl.localhost\docker-desktop
\\wsl.localhost\docker-desktop-data