通過微軟的WSL2使用Fedora 33
如果你像我一樣,你可能會發(fā)現(xiàn)自己因?yàn)楦鞣N原因而運(yùn)行 Windows,無論是因?yàn)楣ぷ鬟€是游戲。當(dāng)然,你可以在虛擬機(jī)或容器中運(yùn)行 Fedora,但這些并不像 Windows 的 Linux 子系統(tǒng)(WSL)那樣容易融合到普通的 Windows 體驗(yàn)中。通過 WSL 使用 Fedora 可以讓你將這兩種環(huán)境融合在一起,創(chuàng)造一個奇妙的開發(fā)環(huán)境。
先決條件
為了達(dá)成這一目標(biāo),你需要一些基本條件。你應(yīng)該運(yùn)行 Windows 10,并且已經(jīng)安裝了 WSL2。如果沒有,請查看微軟文檔說明,完成后再回來這里。微軟建議為了簡單起見,將 WSL2 設(shè)置為發(fā)行版的默認(rèn)設(shè)置。本指南假設(shè)你已經(jīng)這樣做了。
接下來,你將需要一些解壓 xz 壓縮文件的方法。你可以用另一個基于 WSL 的發(fā)行版來解壓,或者使用 7zip。
下載 Fedora 33 rootfs
由于 Fedora 并沒有提供實(shí)際的 rootfs 存檔,所以我們將借用一個用于生成 Dockerhub 容器鏡像的存檔。你需要從 fedora-cloud 的 GitHub 倉庫下載該 tar.xz 文件 。一旦你有了這個 tar.xz 文件,解壓它,但不要展開 tar 包。你會得到一個類似 fedora-33-時間標(biāo)簽.tar
的文件。有了這個文件,你就可以構(gòu)建鏡像了。
組合 WSL Fedora 的構(gòu)建版本
我喜歡使用 c:\distros
目錄,但你可以選擇幾乎任何你想要的位置。無論你選擇什么目錄,在你導(dǎo)入該構(gòu)建版本之前,確保其頂層路徑存在。現(xiàn)在打開一個 CMD 或 Powershell 提示符,因?yàn)槭菚r候?qū)肓耍?/p>
wsl.exe --import Fedora-33 c:\distros\Fedora-33 $HOME\Downloads\fedora-33.tar
你會看到 Fedora-33 顯示在 WSL 的列表當(dāng)中:
PS C:\Users\jperrin> wsl.exe -l -v
NAME STATE VERSION
Fedora-33 Stopped 2
下面,你就可以開始在 WSL 中擺弄 Fedora 了,但我們還需要做一些事情來使它真正成為一個有用的 WSL 發(fā)行版。
wsl -d Fedora-33
這將以 root 用戶的身份啟動 Fedora 的 WSL 實(shí)例。下面,你將安裝一些核心包并設(shè)置一個新的默認(rèn)用戶。你還需要配置 sudo
,否則你將無法在以后需要安裝其他東西時輕松提升權(quán)限。
dnf update
dnf install wget curl sudo ncurses dnf-plugins-core dnf-utils passwd findutils
wslutilites
使用 curl
和 wget
來實(shí)現(xiàn)與 VS Code 的集成,所以它們很有用。由于你需要使用 COPR 倉庫,你需要增加 dnf
功能。
添加你的用戶
現(xiàn)在是時候添加你的用戶,并將其設(shè)置為默認(rèn)用戶。
useradd -G wheel 用戶名
passwd 用戶名
現(xiàn)在,你已經(jīng)創(chuàng)建了你的用戶名,并添加了密碼,確保它們可以工作。退出 WSL 實(shí)例,并再次啟動它,這次指定用戶名。你還要測試 sudo
,并檢查你的 uid。
wsl -d Fedora-33 -u 用戶名
$id -u
1000
$ sudo cat /etc/shadow
假設(shè)一切正常,你現(xiàn)在已經(jīng)準(zhǔn)備好在 Windows 中為你的 Fedora 環(huán)境設(shè)置默認(rèn)用戶。要做到這一點(diǎn),請退出 WSL 實(shí)例并回到 Powershell 中。這個 Powershell 單行代碼可以正確配置你的用戶:
Get-ItemProperty Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\\*\ DistributionName | Where-Object -Property DistributionName -eq Fedora-33 | Set-ItemProperty -Name DefaultUid -Value 1000
現(xiàn)在你應(yīng)該可以再次啟動 WSL,而不需要指定就可以成為自己的用戶而不是 root。
自定義!
至此,你已經(jīng)有了可以在 WSL 中運(yùn)行的基本 Fedora 33 環(huán)境,但它還沒有 Windows 集成的部分。如果你想要這個,有一個 COPR 倉庫可以啟用。如果你選擇添加這部分,你就可以直接在 shell 里面運(yùn)行 Windows 應(yīng)用,也可以輕松地將你的 Linux 環(huán)境與 VS Code 集成。需要注意的是,COPR 并沒有得到 Fedora 基礎(chǔ)架構(gòu)的官方支持。使用該軟件包,風(fēng)險(xiǎn)自擔(dān)。
dnf copr enable trustywolf/wslu
現(xiàn)在你可以去配置終端、設(shè)置一個 Python 開發(fā)環(huán)境,或者其它你想使用 Fedora 33 的方式。享受吧!