使用 Fedora 33 与微软的 WSL2

如果您像我一样,可能会发现自己出于各种原因运行 Windows,从工作到游戏。 你当然可以跑 Fedora 在虚拟机中或作为容器,但它们不像 Windows 子系统 Linux (WSL) 那样容易融入常见的 Windows 体验。 使用 Fedora 通过 WSL,您可以将这两种环境混合在一起,形成一个梦幻般的开发环境。

先决条件

为了使这一切正常工作,您需要具备一些基础知识。 你应该运行 Windows 10,并且已经安装了 WSL2。 如果没有,请查看 有关说明的 Microsoft 文档,完成后回到这里。 为简单起见,Microsoft 建议将 wsl2 设置为发行版默认值。 本指南假定您已完成此操作。

接下来,您将需要一些解压缩 xz 压缩文件的方法。 您可以使用另一个基于 WSL 的发行版来执行此操作,或者使用 7zip.

下载一个 Fedora 33 根文件系统

自从 Fedora 不提供实际的 rootfs 档案,我们将滥用用于为 dockerhub 生成容器映像的档案。 你会想要下载 tar.xz 文件 来自 fedora-cloud GitHub 存储库。 获得 tar.xz 后,将其解压缩,但不要解压缩。 你想最终得到类似 fedora-33-datestamp.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

从这里,你可以开始玩 Fedora 在 wsl 中,但我们需要做一些事情才能使其作为 wsl 发行版真正有用。

wsl -d Fedora-33

这将启动 Fedora的 wsl 实例作为 root 用户。 从这里开始,您将安装一些核心软件包并设置一个新的默认用户。 您还需要配置 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 yourusername
passwd yourusername

现在您已经创建了用户名并添加了密码,请确保它们有效。 Exit wsl 实例,然后再次启动它,这次指定用户名。 你也要考 sudo,并检查您的 uid。

wsl -d Fedora-33 -u yourusername
$id -u
1000
$ sudo cat /etc/shadow

假设一切正常,您现在可以为您的用户设置默认用户 Fedora 在 Windows 中设置。 为此,请退出 wsl 实例并返回 Powershell。 此 Powershell one-liner 可正确配置您的用户:

Get-ItemProperty Registry::HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionLxss* DistributionName | Where-Object -Property DistributionName -eq Fedora-33  | Set-ItemProperty -Name DefaultUid -Value 1000

现在,您应该能够在不指定用户的情况下再次启动 WSL,并且以您自己的身份而不是 root 身份。

定制!

从这里,你已经完成了基本的 Fedora 33 设置在 wsl 中运行,但它还没有 Windows 集成部分。 如果这是您想要的,可以启用 Copr 存储库。 如果您选择添加此部分,您将能够直接从您的 shell 内运行 Windows 应用程序,以及轻松地将您的 Linux 环境与 VS Code 集成。 请注意,Copr 不受官方支持 Fedora 基础设施。 使用包的风险自负

dnf copr enable trustywolf/wslu

现在你可以去配置你的终端,设置一个 Python 开发环境,或者你想使用的其他任何东西 Fedora 33. 享受吧!

相关阅读:

Posted in: LinuxTags: