1. 准备工作:为什么要在 WSL 2 里装 brew,而不是直接装双系统
这事儿得先掰扯清楚。很多人一听到“Windows 上装 brew”,第一反应是“那不是 Mac 的包管理器吗?”确实,brew 最早是 macOS 上的东西,但后来项目组加了对 Linux 的支持,也就是 Homebrew on Linux,官方缩写叫 linuxbrew。现在你在 GitHub 上看到 homebrew 仓库,里面同时维护着 macOS 版和 Linux 版,WSL 2 里的 Ubuntu 就是一个标准的 Linux 发行版,所以完全可以直接安装使用。
那问题来了:装 Linux 用 brew,跟你直接在 Windows 上装个 Git Bash、Scoop 或者 Chocolatey 有什么本质区别?
我个人的体验是:WSL 2 提供的是一个完整的 Linux 内核,而不是模拟环境。这意味着你在里面装的软件、跑的脚本、编译的 C 项目,行为和你在一台真正的 Linux 服务器上几乎一致。我自己踩过最大的坑就是,很多东西在 Git Bash 下跑得通,一到服务器就崩,因为 Git Bash 不是真 Linux,它没有完整的系统调用层,也没有 systemd(虽然 WSL 里 systemd 也是后来才支持的),很多依赖系统底层的工具根本没法正常工作。WSL 2 用的是真正的 Linux 内核,加上 brew 在 Linux 下的支持已经非常成熟,这套组合基本可以无缝把你的开发环境从 Mac 迁移过来,或者在 Windows 上体验完整的 Linux 开发流。
如果你是个前端、后端、运维或者学生党,需要在 Windows 上跑 Linux 生态的开发工具链,这套方案非常适合你。不用装双系统重启切环境,不用折腾虚拟机分配内存,直接在 Windows 桌面上开一个 Ubuntu 终端,把 brew、git、node、python、openjdk 这些统统交给 brew 管理,舒服得一匹。
那为什么不直接装双系统?两个原因。第一,重启切换成本太高,开发过程中频繁切换系统非常影响效率;第二,双系统的磁盘空间利用率低,Windows 和 Linux 各自需要独立分区,还得处理引导问题,出一次事故你可能大半天就没了。WSL 2 本质上是一个轻量级虚拟机,但它和 Windows 文件系统互通,你可以在 /mnt/c 直接访问 Windows 盘符,也可以在 Windows 里用 \\wsl$ 访问 Linux 文件系统,这一点对日常开发来说太重要了。
好,动机说清楚了,下面直接进入正题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. WSL 2 环境准备:Windows 功能启用与内核更新
在安装 brew 之前,必须先有一个能用的 WSL 2 环境。很多人卡在第一步,就是 WSL 2 的启用和内核更新没做好。这里我按 Windows 10 和 Windows 11 分别说,两条路线的操作基本一致,只有少量差异。
2.1 启用 Windows 的 WSL 功能
第一步,打开“控制面板 - 程序和功能 - 启用或关闭 Windows 功能”,勾选以下三样:
- 适用于 Linux 的 Windows 子系统(也就是 WSL 功能本身)
- 虚拟机平台(WSL 2 的核心依赖,不勾这个只能跑 WSL 1)
- Hyper-V 管理器(如果你用的是 Windows 10 专业版/企业版,建议勾上;Windows 11 家庭版没有 Hyper-V 也可以,因为 WSL 2 的虚拟机平台是独立于 Hyper-V 的)
这里有一个非常重要的小细节:如果用命令行方式安装,只需要一条命令就能装好 WSL 功能,不需要手动去控制面板勾选。
我自己实际操作下来,最快的路径是在 管理员权限的 PowerShell 里直接跑:
powershell复制wsl --install
这条命令会一次性帮你启用所有必需的 Windows 功能(包括虚拟机平台和 WSL),然后自动下载并安装默认的 Ubuntu 发行版。第一次跑完会提示你重启电脑,重启之后继续按提示设置 Linux 用户名和密码就行。
但注意,这个命令在 Windows 10 上可能不会自动下载内核,如果重启后 wsl --status 提示内核版本太旧,你需要手动更新。Windows 11 基本是开箱即用,Windows 10 的坑要多一些。
2.2 手动更新 WSL 2 Linux 内核
如果你在 Windows 10 上运行 wsl --set-version <发行版名> 2 时提示需要更新内核,或者 WSL 2 启动报 Please enable the Virtual Machine Platform,那就需要手动安装 WSL 2 的内核更新包。微软官方的更新包是一个 .msi 文件,直接到微软官方文档里搜“WSL 2 Linux 内核更新包”就能找到 Windows 版下载链接。
下载之后一路下一步,装完后在管理员 PowerShell 里执行:
powershell复制wsl --set-default-version 2
把默认版本设成 WSL 2。为什么要设默认版本?因为如果 Windows 上同时存在 WSL 1 和 WSL 2 的发行版,你不指定版本的话,新装的发行版默认走的是 WSL 1,性能差距明显,特别是磁盘 I/O 差好几倍。这个坑我帮身边朋友排查过不知道多少次,每次都是因为漏了这条命令。
顺带提一嘴:WSL 2 的文件系统性能和虚拟机磁盘文件(vhdx)息息相关。如果你发现 WSL 2 占用磁盘越来越大且无法自动回收,可以在 Windows 的命令行里执行 wsl --shutdown,再在 PowerShell 里用 Optimize-VHD 手动压缩 vhdx 文件(需要管理员权限)。这个属于进阶操作,后面有空可以单独写一篇,今天先放这儿。
2.3 安装一个你顺手的 Linux 发行版
WSL 默认会装 Ubuntu,但如果你不喜欢 Ubuntu,也有其他选择。wsl --list --online 可以看到所有支持的发行版列表,包括 Debian、Kali Linux、openSUSE 等。我个人推荐新手用 Ubuntu 22.04 LTS,原因是社区资料最多、遇到问题最容易搜到解决方案;如果你喜欢滚动更新的软件库,Debian sid 或者 ArchWSL 也可以考虑,但折腾成本会高不少。
安装发行版也很简单:
bas复制
