有时候,Windows 就不够用了。其实很多时候都是这样,特别是对开发者来说。但给电脑装双系统或者用虚拟机既麻烦又头疼,在老旧电脑上更是噩梦。那么次优方案是什么呢?不是 WSL,虽然你可能会这么想。文章最后我会揭晓更好的解决方案,所以一定要读完。次次优方案呢?Windows Subsystem for Linux。无论你是需要用 WSL 来修复 WSL 报错,还是…Windows Linux 子系统的可选组件未启用或者出于其他原因,你需要先启用它。
WSL 是什么?
WSL 是一种混合方式,在 PowerShell 中运行某些 Linux 命令和应用程序到 Windows 内,但功能不完整。当然,整个 Windows vs Linux 对比 WSL 不是完整的解决方案,但至少是一个临时方案。它比完整虚拟机(VM)更快,系统开销也更小。不过,WSL 既不能保证所有功能都正常工作,也不支持所有命令和应用程序。总的来说,这是一个折中方案。如果你计划进行跨平台代码编写和编译,我才建议使用它。
WSL2是什么?
新版 Windows 子系统(代号 WSL2)现已默认安装。按照我上面的步骤操作即可激活。WSL2 带来了重大改进,包括对 Docker 和 Kubernetes 容器的完整支持,以及它们的部署能力。Microsoft 终于采取行动让容器更容易上手了。不过,在容器化和代码部署方面,WSL2 还远非完美。
暂时来说,你需要安装 WSL。这就是本指南的用处。我已经列出了启用 WSL 的全部步骤,即使你用的是较早的 Windows 10 Build 也没问题。按照说明操作,你会找到我承诺的那个更好的解决方案。
另请阅读: 如何在 VPS 上安装 Docker(分步指南)
排查错误:Windows 子系统的 Linux 可选组件未启用
用户通常发现 WSL 并尝试安装的主要原因之一是在 Windows 中遇到某个特定错误。当然,在 Windows 中看到错误提示并不新鲜,但这个错误比其他的要少见一些。错误信息通常类似于"Linux 的 Windows 子系统可选组件未启用"。
要解决这个错误,你需要为 Linux 启用 Windows 子系统。本文的步骤会指导你完成这个过程。我们开始吧。
如何为 Linux 启用 Windows 子系统?
要为您的 Windows 添加一些 Linux 功能,您需要启用适用于 Linux 的 Windows 子系统。此外,如果您遇到烦人的"适用于 Linux 的 Windows 子系统可选组件未启用"错误提示,也需要通过启用它来解决。虽然名称听起来很专业,但安装过程其实非常简单。
启用 WSL 的方式主要有两种:通过控制面板或 PowerShell。控制面板的方式更直接、更友好。但有时它会失效(出于某些不为人知的原因,咳咳微软)。PowerShell 的方式需要在命令行界面中输入一些命令,对大多数普通用户来说可能有些吓人。不过别担心,我们已经为你准备好了所有需要的命令,你可以直接复制粘贴到 PowerShell 中。
不过,在选择任何方法之前,你需要先确认你的 Windows 版本和内部版本号。Windows Subsystem for Linux 只支持 Windows 10 2004 版本及更新版本。另外,如果你的 Windows 10 内部版本号低于 16215,需要先启用开发者模式才能启用 WSL。
如何查看你的 Windows 版本?
我们已经另外投入了 如何查看各类操作系统的版本号,所以我长话短说。要查找你的 Windows 10 版本和内部版本号,按照以下三个步骤操作:
第一步:按下 Windows 键 + R 启动应用程序启动器



如上面的截图所示,我的 Windows 10 满足两个条件(版本 2004,版本号 > 16215)。如果你的版本号低于 16215,你需要 启用开发者模式 首先。
如何启用开发者模式(Windows 10 版本 16215 之前的构建版)
开发者模式是 Windows 的一项功能,允许你安装未经 Microsoft 批准或仍在测试阶段的应用。启用开发者模式在其他场景也很有用,比如安装一些未经 Microsoft 官方认可的第三方应用时。要启用开发者模式,按照以下步骤操作即可:
第一步: 打开 设置
第二步: 点击 更新与安全

第三步: 从左侧菜单中选择 为开发者打造

第4步: 点击开/关切换按钮以启用开发者模式。

第5步: 在"使用开发者功能 对话框,点击 是的

如何通过控制面板启用 WSL
在 Windows 10 上运行任何 Linux 发行版之前,你需要先为 Linux 启用 Windows 子系统(WSL)。按以下步骤操作:
第一步: 打开 控制面板
第二步: 点击 程序
![[Windows 10 控制面板屏幕]](https://cloudzy.com/wp-content/uploads/image8-2.png)
第三步: 点击 打开或关闭 Windows 功能

第4步: 找到并选择 Windows Linux 子系统 方框
![[Windows 功能列表,可打开或关闭]](https://cloudzy.com/wp-content/uploads/image2-5.png)
第5步: 勾选确定按钮
第6步: 等待安装向导完成 Windows 的配置。

步骤 7: 接下来,点击 立即重启 在下一个屏幕中

Windows 重启完成后,WSL 即可启用并使用。默认情况下,Windows Subsystem for Linux 运行 Ubuntu 终端。如需其他发行版,可从 Microsoft Store 下载并按以下步骤安装(或使用 PowerShell 方法):
- 打开 微软应用商店
- 搜索 Linux 发行版(Ubuntu、Debian、Kali Linux 等)
- 选择您需要的发行版
- 点击 获取 or 安装 按钮
- 点击 启动 按钮
- 为你的发行版创建用户名,然后按 Enter
- 为你的系统创建密码,然后按 Enter
- 重新输入密码,然后按 Enter 确认
现在,你最喜欢的 Linux 发行版可以在 WSL 上快速就绪。
如何通过 PowerShell 安装 WSL?
如果您习惯使用命令行,也可以用 PowerShell 为 Linux 启用 Windows 子系统。
使用 PowerShell 安装 WSL,请按照以下步骤操作:
- 打开 开始 并搜索 PowerShell
- 右键点击结果,然后选择 以管理员身份运行
- 输入以下命令以启用 Linux 子系统,然后按 Enter
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- 打开 开始 和搜索 PowerShell
- 类型 Y 并按下 Enter 以确认并重启您的计算机。
您的 Windows 10 已准备好供您下载。按照以下步骤安装发行版:
- 打开 开始 和搜索 PowerShell
- 右键点击结果,然后选择 以管理员身份运行
- 输入以下命令,然后按 Enter; 此命令将选择并下载文件夹
cd c:\PATH\TO\DESTINATION-FOLDER
注意:输入路径作为下载文件的保存位置,例如 c:\data
- 输入以下命令下载 Ubuntu 然后按 Enter
Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_1604.2019.523.0_x64.appx -OutFile Ubuntu.appx -UseBasicParsing
注意:此命令将下载 Ubuntu 16.04。要下载你需要的发行版,直接输入版本名称即可。
- 类型 dir 并按下 Enter 查看安装程序的实际名称
- 输入以下命令并按 Enter 安装发行版。在 APP-NAME 部分输入发行版的名称
Add-AppxPackage .\APP-NAME.appx
- 打开 开始
- 搜索发行版,点击顶部结果即可启动
- 为你的发行版创建用户名,然后按 Enter
- 为你的系统创建密码,然后按 Enter
- 重新输入密码,然后按 Enter 确认
更好的解决方案?
如果你安装 WSL 并不是因为遇到了错误提示("the windows subsystem for Linux optional component is not enabled"),而是单纯想使用 Linux,那么我有一个更好的解决方案推荐给你。
如我在本文开头所说,对大多数用户来说,从 Windows 迁移到 Linux 并不简单。放弃熟悉的操作系统,进入 Linux 的陌生领域,这前景并不令人期待。因此,大多数初级开发者或网站管理员倾向于选择双系统启动,这会给硬件带来巨大压力且有破坏整个系统的风险,或者使用虚拟机。 虚拟机的开销非常大,但同时运行两个完整的操作系统(这就是虚拟机所做的)会导致两者性能大幅下降。所以,除非你在家里有台超高配的游戏电脑,否则你需要找一个更好的方案。
这时用户通常会转向用于 Linux 的 Windows 子系统,但如我之前解释的,这只是一个折中方案,让你只能使用部分命令和应用。如果你不想迁移、双启动或使用虚拟机,这真的是最好的选择吗?不是。
Linux 主机服务简化版
想要更好的方式来托管网站和网络应用?正在开发新项目?或者只是不喜欢 Windows?这就是我们提供 Linux VPS 的原因。
获取你的 Linux VPS我建议你选择 Linux VPS 方案,把它当作远程计算机使用。我们的 Linux VPS 产品是针对发行版优化的托管方案,采用顶级硬件,所以你完全不用担心开销问题。我们还在全球 14 多个地点提供 VPS 方案,无论你身在何处都能建立低延迟的服务器连接。