0

Linux 的 Windows 子系统 WSL 现在带来期待已久的支持

 2 months ago
source link: https://www.51cto.com/article/719607.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

适用于 Linux 的 Windows 子系统 (WSL) 是一个兼容层,它允许 Linux 二进制可执行文件在 Windows 上本地运行。这是一项 Windows 功能,可让您与常规 Windows 桌面和程序一起运行 Linux。

近年来,WSL 因其简单性和灵活性而越来越受欢迎,减少了 Windows 用户运行整个 Linux 虚拟机来测试某些功能的需要。

但是,由于缺少任何现代 Linux 系统(例如 systemd)的一些关键组件,WSL 并没有提供功能齐全的 Linux 体验。幸运的是,这块拼图终于到位了。

不管是否巧合,这个改变游戏规则的功能是在 systemd 的创建者和领先的开发人员Lennart Poettering 离开红帽加入微软两个多月后推出的。

适用于 Windows 的 Linux 子系统上的 Systemd

图片

WSL 中 systemd 的存在将系统提升到了一个全新的水平,开辟了许多可能性。例如,您可以在 WSL 系统中安装 LEMP 服务器并快速轻松地开发 Web 应用程序。

此外,如果您使用Ubuntu,您现在可以利用 Snap 包管理器的功能。由于依赖于 systemd 的可用性,这在以前是不可能的。

此外,我们可以继续说现在可以安装MicroK8s以允许您运行 Kubernetes 集群。因此,如前所述,这一新功能极大地扩展了可能性。

当然,并非所有 Linux 发行版都使用 systemd,但大多数现代发行版,包括 Debian、Ubuntu、Arch Linux、Fedora、openSUSE 等,都采用并依赖它。

因此,现在让我向您展示如何使用 systemd 支持功能更新 Windows PC 上的 WSL 服务。

如何向 WSL 添加 Systemd 支持?

Microsoft 最新发布的适用于 Linux 的 Windows 子系统版本 0.67.6 为 WSL 添加了 systemd 支持。因此,要获得此功能,您必须首先升级您的 WSL 版本。

检查当前使用的 WSL 版本的一种简单方法是运行:

wsl --version
图片

请记住,如果该命令失败,则您使用的是 Windows 内版本的 WSL,并且必须升级到 Store 版本。

然后,使用以下命令将您的 WSL 实例更新到最新版本。

wsl --update

图片

WSL 可能会通知您没有可用的新版本。如果是这种情况,请按照以下说明手动升级 WSL 版本。

转到GitHub 项目页面并导航到发布部分以下载最新版本。目前是预发布的0.67.6 (Microsoft.WSL_0.67.6.0_x64_ARM64.msixbundle)。

下载文件后,您可以继续安装。但首先,您必须停止 WSL 服务。否则,安装将失败。

因此,打开服务管理控制台,突出显示“Windows Subsystem for Linux Preview”服务,然后从右键单击上下文菜单中选择“停止”。

图片

最后,使用管理权限打开 Windows Power Shell 控制台(右键单击,然后“以管理员身份运行”)并执行:

Add-AppxPackage "C:\Users\bobby\Downloads\Microsoft.WSL_0.67.6.0_x64_ARM64.msixbundle"

当然,将实际文件路径替换为您系统的正确路径。安装完成后,启动“Windows Subsystem for Linux Preview”服务。

在 WSL 发行版中启用 Systemd 支持

到目前为止,一切都很好。您的 WSL 服务现在具有 systemd 支持。但是,请务必记住,这不会自动向您的 Linux 实例添加一个。

换句话说,为每个 Linux 发行版单独手动启用它。幸运的是,这很容易。

在发行版内部,使用您喜欢的文本编辑器打开 ​​/etc​​ 目录中的 ​​wsl.conf​​文件。如果该文件不可用,只需创建一个新文件。

sudo nano /etc/wsl.conf
图片

粘贴以下内容,然后保存文件并退出。

[boot]
systemd=true
图片

最后,关闭您的 WSL 发行版窗口,然后在 Power Shell 控制台中,键入以下命令以重新启动您的 WSL 实例:

wsl --shutdown

就这样。您的WSL 发行版现在应该具有 systemd 支持。启动发行版,并从其Shell 运行以下命令以测试此功能。结果应该看起来像屏幕截图中的那个。

图片

我们希望我们能有所帮助。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK