当前位置: 首页 > 科技观察

通过Microsoft的WSL2使用Fedora33

时间:2023-03-20 15:00:20 科技观察

如果您像我一样,您可能发现自己出于各种原因运行Windows,无论是工作还是游戏。当然,您可以在虚拟机或容器中运行Fedora,但它们不像适用于Linux的Windows子系统(WSL)那样容易融入正常的Windows体验。将Fedora与WSL结合使用可以让您将两种环境融合在一起,从而创建一个出色的开发环境。先决条件为了实现这个目标,您需要一些基本的先决条件。您应该运行Windows10并安装了WSL2。如果没有,请查看Microsoft文档以获取说明,完成后返回此处。为简单起见,Microsoft建议将WSL2设置为发行版的默认设置。本指南假定您已经这样做了。接下来,您需要一些解压缩xz存档的方法。您可以使用另一个基于WSL的发行版或使用7zip将其解压缩。下载Fedora33rootfs由于Fedora不提供实际的rootfs存档,我们将借用一个用于生成Dockerhub容器镜像的文件。您需要从fedora-cloudGitHub存储库下载tar.xz文件。获得tar.xz文件后,将其解压缩,但不要展开tarball。您将获得一个类似fedora-33-timetag.tar的文件。使用此文件,您可以构建图像。结合WSLFedora构建我喜欢使用c:\distros目录,但您几乎可以选择任何您想要的位置。无论您选择什么目录,请确保在导入构建之前存在其顶级路径。现在打开CMD或Powershell提示符,因为是时候导入了:wsl.exe--importFedora-33c:\distros\Fedora-33$HOME\Downloads\fedora-33.tar你会看到Fedora-33显示在WSL列表:PSC:\Users\jperrin>wsl.exe-l-vNAMESTATEVERSIONFedora-33Stopped2下面,你可以开始玩WSL中的Fedora,但我们还需要做一些事情才能让它成功确实是一个有用的WSL发行版。wsl-dFedora-33这将以root用户身份启动Fedora的WSL实例。接下来,您将安装一些核心包并设置一个新的默认用户。您还需要配置sudo,否则如果您以后需要安装其他东西,您将无法轻松提升您的权限。dnfupdatednfinstallwgetcurlsudoncursesdnf-plugins-corednf-utilspasswdfindutilswslutilites使用curl和wget与VSCode集成,因此它们很有用。由于需要使用COPR仓库,所以需要添加dnf功能。添加您的用户现在是时候添加您的用户并将其设置为默认用户了。useradd-Gwheelusernamepasswdusername现在您已经创建了用户名并添加了密码以确保它们有效。退出WSL实例,然后重新启动它,这次指定用户名。您还测试sudo,并检查您的uid。wsl-dFedora-33-uusername$id-u1000$sudocat/etc/shadow假设一切顺利,您现在可以在Windows中为您的Fedora环境设置一个默认用户。为此,请退出WSL实例并返回到Powershell。此Powershell单行程序将正确配置您的用户:Get-ItemPropertyRegistry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\\*\DistributionName|Where-对象-PropertyDistributionName-eqFedora-33|Set-ItemProperty-NameDefaultUid-Value1000现在您应该能够再次启动WSL,而无需指定是您自己的用户而不是root。定制!此时,您有一个在WSL中运行的基本Fedora33环境,但它还没有Windows集成。如果需要,可以启用COPR存储库。如果您选择添加这部分,您可以直接在shell中运行Windows应用程序,并且可以轻松地将您的Linux环境与VSCode集成。请注意,Fedora基础架构并未正式支持COPR。使用此软件包需要您自担风险。dnfcoprenabletrustywolf/wslu现在你可以配置终端,设置Python开发环境,或者任何你想使用Fedora33的东西。享受!