WSL 实战:让 Windows 开发环境媲美 Linux

如果你既要又要,那么可以试试这个开发环境

一、安装 WSL2.0

WSL2.0 相比 WSL1.0 具备完整的 Linux 内核、托管 VM 和完全的系统调用兼容性,所以我们这里使用 WSL2.0

提前查看当前系统的内部版本号:
检查 WSL2 的要求:win+R 打开运行,然后输入 winver 检查 windows 版本。
新版:内部版本大于 19041,或 Windows 11,可以直接一键安装。
旧版:操作系统内部版本号需大于 1903x(要是还是小于这个版本号,你就别整了,你不合适)

新版安装方法

  1. 以管理员打开 powershell 输入下列命令
wsl --install

# 该 --install 命令执行以下作:
# 启用可选的 WSL 和虚拟机平台组件
# 下载并安装最新 Linux 内核
# 将 WSL 2 设置为默认值
# 下载并安装 Ubuntu Linux 发行版(可能需要重新启动)

这一步要是你失败了,那就看旧版安装方法吧!

  1. 更改安装的默认 Linux 分发版
# 将 [Distro] 替换为您想要安装的分发版名称。
# 推荐 Ubuntu 22.04 LTS
wsl.exe --install [Distro]

若要查看可通过在线商店下载的可用 Linux 分发版列表,请输入:
wsl.exe --list --online

旧版安装方法

  1. 启用适用于 Linux 的 Windows 子系统:打开 powershell 并输入:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  1. 检查 WSL2 的要求:win+R 打开运行,然后输入 winver 检查 windows 版本,操作系统内部版本号需大于 1903x

  2. 启用虚拟化:以管理员打开 powershell 输入下列命令

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 启用 Hyper-V 相关依赖(部分 Win10/11 需手动开启)
dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V-All /all /norestart
  1. 更新并重启系统

  2. 安装 WSL2 内核更新包,点击手动下载

  3. 设置 WSL 2 为默认版本(可选但推荐)

wsl --set-default-version 2
  1. 商店下载你喜欢的 Linux 版本,还是推荐 Ubuntu 22.04 LTS

请注意:适用于 Linux 的 Windows 子系统默认会在系统驱动器(通常是 C: 驱动器)中安装运行。 如果你不想占用系统盘:打开“设置”->“系统”-->“存储”-> “更多存储设置”: 更改新内容的保存位置”

但倘若安装失败并出现错误 0x80070003,那你白整,说明你的系统只能在系统驱动器运行。

  1. 打开后设置初始的用户名和密码即可,如果出现参考的对象类型不支持尝试的操作,请重置下网络 netsh winsock reset
  1. 安装完成后你将在网络中看到你的系统磁盘

二、配置开发环境

I'm a geek and I love customizing things for myself.
Then there's no need to look at the recommended configurations that follow.

一键安装推荐配置:

# 一键下载并 sudo 执行脚本

# 镜像
curl -fsSL https://cdn.jsdelivr.net/gh/zch233/ubunto-bash-install@master/install.sh | bash -

# github
curl -fsSL https://raw.githubusercontent.com/zch233/ubunto-bash-install/refs/heads/master/install.sh | bash -

可能会某些资源下载失败,只能多尝试几次了~

三、常见问题解决

1. 尝试升级时出错:Invalid command line option: wsl --set-version Ubuntu 2

请确保已启用适用于 Linux 的 Windows 子系统,并且你使用的是 Windows 内部版本 18362 或更高版本。 若要启用 WSL,请在 PowerShell 提示符下以具有管理员权限的身份运行此命令:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

2. 安装失败并出现错误 0x80070003

适用于 Linux 的 Windows 子系统只能在系统驱动器(通常是 C: 驱动器)中运行。 请确保分发版存储在系统驱动器上:打开“设置”->“系统”-->“存储”-> “更多存储设置”: 更改新内容的保存位置”

3. WslRegisterDistribution 失败并出现错误 0x8007019e

未启用“适用于 Linux 的 Windows 子系统”可选组件:

打开“控制面板” -> “程序和功能” -> “打开或关闭 Windows 功能”-> 选中“适用于 Linux 的 Windows 子系统”,或使用本文开头所述的 PowerShell。

4. 安装失败,出现错误 0x80070003 或错误 0x80370102

请确保在计算机的 BIOS 内已启用虚拟化。 有关如何执行此操作的说明因计算机而异,并且很可能在 CPU 相关选项下。WSL2 要求 CPU 支持二级地址转换 (SLAT) 功能,后者已在 Intel Nehalem 处理器(Intel Core 第一代)和 AMD Opteron 中引入。 即使成功安装了虚拟机平台,旧版 CPU(例如 Intel Core 2 Duo)也无法运行 WSL2。

5. 无法将词语“wsl”识别为 cmdlet、函数、脚本文件或可运行程序的名称

请确保已安装“适用于 Linux 的 Windows 子系统”可选组件。 此外,如果你使用的是 ARM64 设备,并从 PowerShell 运行此命令,则会收到此错误。 请改为从 PowerShell Core 或从命令提示符运行 wsl.exe。

6. 错误:此更新仅适用于装有适用于 Linux 的 Windows 子系统的计算机

  • 若要安装 Linux 内核更新 MSI 包,需要 WSL,应先启用它。 如果失败,将看到以下消息:This update only applies to machines with the Windows Subsystem for Linux。
  • 出现此消息有三个可能的原因:
    1. 你仍使用旧版 Windows,不支持 WSL 2。 有关版本要求和要更新的链接,请参阅步骤 #2。
    2. 未启用 WSL。 需要返回到步骤 #1,并确保在计算机上启用了可选的 WSL 功能。
    3. 启用 WSL 后,需要重新启动才能使其生效,请重新启动计算机,然后重试。

7. 错误:WSL 2 要求对其内核组件进行更新

如果 %SystemRoot%\system32\lxss\tools 文件夹中缺少 Linux 内核包,会遇到此错误。 若要解决此问题,请在安装说明的步骤 #4 中安装 Linux 内核更新 MSI 包。 可能会需要从添加或删除程序卸载 MSI,然后重新安装。

8. 这玩意儿似乎和我的编辑器配合的不是很好,如:用作为当前目录的以上路径启动了 CMD.EXE。UNC 路径不受支持。默认值设为 Windows 目录。没有识别出 git 目录。

  • vscode 用户安装插件 WSL。
  • webstorm 用户需要配置正确的 node 路径,Languages & Frameworks > Node.js,选择 wsl 中的 node 即可。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容