如果你曾在全新 Windows 上花一下午点「下一步」装软件,你就懂包管理器为什么存在。但 Windows 现在有三大工具:Scoop、Chocolatey 和 WinGet,三者来自不同的生态,安装位置不同,解决不同的问题。这篇对比文章帮你按自己的实际工作方式,选出对的那个(或者对的组合)。
快速结论
- 选 Scoop:主要安装开发者和 CLI 工具,希望所有东西都在自己的用户目录里,不需要管理员权限、没有安装向导、卸载干净。
- 选 Chocolatey:需要全机器、脚本化部署通用软件,运维团队和 CI 流水线的经典选择。
- 选 WinGet:主要安装日常桌面应用,想要 Windows 自带的最简单方案。
你不需要三选一。很多开发者三个一起用:Scoop 管工具链,WinGet 管浏览器和桌面应用,Chocolatey 管策略或脚本要求的场景。
三者一览
| Scoop | Chocolatey | WinGet | |
|---|---|---|---|
| 适合谁 | 开发者和 CLI 工具 | 全系统部署、CI/运维 | 日常桌面应用 |
| 管理员权限 | 不需要 | 通常需要(全机器安装) | 仅当底层安装器需要时 |
| 安装位置 | %USERPROFILE%\scoop |
默认 Program Files |
由各个安装器自己决定 |
| 包来源 | 社区 Git 仓库(「bucket」) | 社区仓库 + 私有源 | 社区仓库 + Microsoft Store |
| 包格式 | JSON 清单 | NuGet 包(.nupkg) |
YAML 清单 / Store 条目 |
| 安装命令示例 | scoop install git |
choco install git |
winget install Git.Git |
| 全部更新 | scoop update * |
choco upgrade all |
winget upgrade --all |
| 价格 | 免费开源 | 社区版免费;企业功能收费 | 免费,Windows 10/11 内置 |
什么是 Scoop?
Scoop 从存放在社区 Git 仓库(称为 bucket)里的 JSON 清单安装程序。它把「用户空间」模式在 Windows 上发扬光大:所有东西都装在 %USERPROFILE%\scoop 下,不需要管理员提权,每个包还会在 PATH 上放一个小 shim,装完在任何终端里都能直接用。
优点:不需要管理员权限;按用户安装、不污染系统;卸载干净(删掉一个文件夹就行);开发者工具的社区 bucket 生态庞大;命令集顺手。
不足:下载通常走单一连接,大文件在快线路上跑不满;重装一个包会重新解压完全相同的文件;覆盖面以 CLI/开发者工具为最佳,大型 GUI 应用较弱。
什么是 Chocolatey?
Chocolatey 是三者中最老的一个,走的是传统路线:包是 NuGet 压缩包,里面的安装脚本通常以提权方式静默运行官方安装器,装到全机器范围。它对通用 Windows 软件的覆盖非常好,社区脚本成熟,付费档还提供包构建、私有源和组织管理工具。
优点:目录巨大,包含 GUI 应用;面向全系统部署的自动化方案成熟;有企业功能。
不足:大多数安装需要管理员权限;包本质上是包装了安装向导,行为有时取决于底层安装器;社区版免费,但高级管理功能是商业收费的。
什么是 WinGet?
WinGet 是微软官方客户端,Windows 10 和 11 内置。它用 YAML 清单从社区仓库和 Microsoft Store 拉取应用,而且很多包本质上只是包装了官方安装器,所以对主流桌面软件的覆盖极佳,浏览器、编辑器、聊天应用、各类系统工具。
优点:新版 Windows 开箱自带;GUI 应用目录巨大;与 Microsoft Store 集成;命令简单。
不足:许多包底层仍然运行厂商自己的安装器,UAC 弹窗和安装器的怪癖依然存在;面向按用户安装、命令行优先的工作流支持一般;版本锁定和多版本管理能力有限。
怎么选
- 给自己装开发机:Scoop 的模式最合适。工具装进你的用户目录、不需要提权、一条命令全部更新。再配上 WinGet 补齐 Scoop 覆盖不到的 GUI 应用。
- 管理一批机器或 CI 流水线:Chocolatey 的全机器、可脚本化安装和企业功能是被验证过的成熟路径。
- 普通用户:WinGet 已经在你电脑里了,
winget install <应用>就完事了。 - 多台机器来回切换的人:无论选哪个,优先考虑能导出并重放包列表的方案,那才能把两小时的装机变成两分钟。
Glue 在什么位置?
Glue 是 Scoop 这条赛道上的第四个选项:一个用 Go 编写的独立运行时,读取同样的 Scoop bucket 和清单,用同样的命令动词。它不取代另外三者,它瞄准的是 Scoop 唯一真正的短板:安装引擎。
- 并行下载,大文件通过多个 HTTP 连接分段获取、支持断点续传,而不是单连接下载。
- 内容寻址存储,文件按 SHA-256 哈希存储、安装走硬链接,重复副本被消除,重装几乎瞬间完成。
- 原生 shim,命令通过小型原生二进制放上
PATH,无需手动改环境变量。
Glue 安装在自己的根目录(%USERPROFILE%\.glue),完全不动现有的 Scoop 工作区,所以你可以把它和 Scoop、Chocolatey、WinGet 并排运行,最后留下用得顺手的那个。试用:
irm https://gluestick.sh/install.ps1 | iex
常见问题
Scoop、Chocolatey、WinGet 能装在同一台机器上吗?
可以,它们互相独立。Scoop 装在 %USERPROFILE%\scoop,Glue 装在 %USERPROFILE%\.glue,Chocolatey 和 WinGet 各装各的位置,互不冲突。常见组合是 Scoop 或 Glue 管开发工具链,WinGet 补桌面应用。
WinGet 会取代 Chocolatey 和 Scoop 吗?
不会。它们关键词上重叠,模式上并不重叠:WinGet 主要在全机器范围调度厂商安装器,Scoop 专注可携带、按用户、命令行优先的安装,Chocolatey 的企业工具链也没有 WinGet 等价物。三者都在积极维护,很多人两个一起用。
开发者应该先装哪个?
如果你的日常工具是 git、语言运行时和 CLI 工具,从 Scoop 生态(Scoop 或 Glue)开始,按用户安装意味着装机过程不会中途弹出 UAC,以后卸载也干净。再用 WinGet 补充 bucket 里没有的 GUI 应用。
这些工具需要管理员权限吗?
Chocolatey 通常需要;WinGet 在底层安装器需要提权时也需要。Scoop 和 Glue 不需要:所有东西都装在你的用户目录里,这也是它们在没有本地管理员权限的公司机器上特别好用的原因。
结论
按生态选,而不是按品牌选:开发者工具用 Scoop 的 bucket,脚本化全系统部署用 Chocolatey,日常应用用 WinGet。如果你就生活在 Scoop 生态里,想让安装引擎跟上现代带宽和存储的水平,Glue 让你在不换 bucket 的前提下,直接获得并行下载和零拷贝安装。
Comments