通過微軟的 WSL2 使用 Fedora 33
如果你像我一樣,你可能會發現自己因為各種原因而運行 Windows,無論是因為工作還是遊戲。當然,你可以在虛擬機或容器中運行 Fedora,但這些並不像 Windows 的 Linux 子系統(WSL)那樣容易融合到普通的 Windows 體驗中。通過 WSL 使用 Fedora 可以讓你將這兩種環境融合在一起,創造一個奇妙的開發環境。
先決條件
為了達成這一目標,你需要一些基本條件。你應該運行 Windows 10,並且已經安裝了 WSL2。如果沒有,請查看微軟文檔說明,完成後再回來這裡。微軟建議為了簡單起見,將 WSL2 設置為發行版的默認設置。本指南假設你已經這樣做了。
接下來,你將需要一些解壓 xz 壓縮文件的方法。你可以用另一個基於 WSL 的發行版來解壓,或者使用 7zip。
下載 Fedora 33 rootfs
由於 Fedora 並沒有提供實際的 rootfs 存檔,所以我們將借用一個用於生成 Dockerhub 容器鏡像的存檔。你需要從 fedora-cloud 的 GitHub 倉庫下載該 tar.xz 文件 。一旦你有了這個 tar.xz 文件,解壓它,但不要展開 tar 包。你會得到一個類似 fedora-33-時間標籤.tar
的文件。有了這個文件,你就可以構建鏡像了。
組合 WSL Fedora 的構建版本
我喜歡使用 c:distros
目錄,但你可以選擇幾乎任何你想要的位置。無論你選擇什麼目錄,在你導入該構建版本之前,確保其頂層路徑存在。現在打開一個 CMD 或 Powershell 提示符,因為是時候導入了:
wsl.exe --import Fedora-33 c:distrosFedora-33 $HOMEDownloadsfedora-33.tar
你會看到 Fedora-33 顯示在 WSL 的列表當中:
PS C:Usersjperrin> wsl.exe -l -v
NAME STATE VERSION
Fedora-33 Stopped 2
下面,你就可以開始在 WSL 中擺弄 Fedora 了,但我們還需要做一些事情來使它真正成為一個有用的 WSL 發行版。
wsl -d Fedora-33
這將以 root 用戶的身份啟動 Fedora 的 WSL 實例。下面,你將安裝一些核心包並設置一個新的默認用戶。你還需要配置 sudo
,否則你將無法在以後需要安裝其他東西時輕鬆提升許可權。
dnf update
dnf install wget curl sudo ncurses dnf-plugins-core dnf-utils passwd findutils
wslutilites
使用 curl
和 wget
來實現與 VS Code 的集成,所以它們很有用。由於你需要使用 COPR 倉庫,你需要增加 dnf
功能。
添加你的用戶
現在是時候添加你的用戶,並將其設置為默認用戶。
useradd -G wheel 用戶名
passwd 用戶名
現在,你已經創建了你的用戶名,並添加了密碼,確保它們可以工作。退出 WSL 實例,並再次啟動它,這次指定用戶名。你還要測試 sudo
,並檢查你的 uid。
wsl -d Fedora-33 -u 用戶名
$id -u
1000
$ sudo cat /etc/shadow
假設一切正常,你現在已經準備好在 Windows 中為你的 Fedora 環境設置默認用戶。要做到這一點,請退出 WSL 實例並回到 Powershell 中。這個 Powershell 單行代碼可以正確配置你的用戶:
Get-ItemProperty Registry::HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionLxss\* DistributionName | Where-Object -Property DistributionName -eq Fedora-33 | Set-ItemProperty -Name DefaultUid -Value 1000
現在你應該可以再次啟動 WSL,而不需要指定就可以成為自己的用戶而不是 root。
自定義!
至此,你已經有了可以在 WSL 中運行的基本 Fedora 33 環境,但它還沒有 Windows 集成的部分。如果你想要這個,有一個 COPR 倉庫可以啟用。如果你選擇添加這部分,你就可以直接在 shell 裡面運行 Windows 應用,也可以輕鬆地將你的 Linux 環境與 VS Code 集成。需要注意的是,COPR 並沒有得到 Fedora 基礎架構的官方支持。使用該軟體包,風險自擔。
dnf copr enable trustywolf/wslu
現在你可以去配置終端、設置一個 Python 開發環境,或者其它你想使用 Fedora 33 的方式。享受吧!
via: https://fedoramagazine.org/wsl-fedora-33/
作者:Jim Perrin 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive