Windows大家最熟悉的软件安装方式,就是下载一个安装包,运行安装程序了。安装后命令行里也可以运行此程序,因为安装过程中会自动更新系统的PATH环境变量。
但除此之外,可以直接使用命令提示行(Command Prompt)来安装程序,方便快捷。
比如安装git:
C:\>winget search git
// 找到ID一列作为安装选项
C:\>winget install Git.Git
使用WinGet命令,就可以和Ubuntu下使用APT命令一样安装需要的软件包了。但同样的,这种安装方式是从指定的软件仓库中安装,可能版本更新不够及时。
命令行运行的包管理器,各个平台对比:
平台 | 包管理器 |
Ubuntu | apt |
CentOS | yum/dnf |
macOS | brew |
Windows | winget / choco / scoop |
Windows平台工具的对比
工具 | 默认安装 | 需要管理员 | 软件来源 |
winget | 通常是 | 不一定 | Microsoft 仓库 |
scoop | 否 | 一般不需要 | 社区 bucket |
choco | 否 | 经常需要 | Chocolatey 仓库 |
winget
像:微软官方现代化方案
特点:
* 标准化
* 越来越成熟
Chocolatey
像:Windows 管理员
特点:
* 重
* 系统级
* 企业风格
Scoop
像:Linux 黑客
特点:
* 绿色
* Portable
* CLI-centric
对于开发者来说:
* winget:Windows 官方,装常见软件方便。
* scoop:绿色软件友好,安装到用户目录,不污染系统。
* choco:历史最久,软件数量很多,但很多操作需要管理员权限。
很多程序员现在的组合是:
winget + scoop
* 用 winget 装大型软件(VS Code、Chrome、Docker)
* 用 scoop 装开发工具(git、python、gcc、ripgrep、fzf 等)
例如:
scoop install git
scoop install python
scoop install ripgrep
scoop install fzf
关于安装
系统自带了WinGet,可以先使用WinGet安装choco:(搜索这个包,得到ID,使用ID进行安装,winget install )
C:\>winget search chocolatey
名称 ID 版本 匹配 源
-----------------------------------------------------------------------------------------------------------------------
Chocolatey Chocolatey.Chocolatey 2.7.4.0 winget
C:\>winget isntall Chocolatey.Chocolatey
Scoop可以官网下载安装:
https://scoop.sh
或者使用脚本安装:(在PowerShell中运行)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
使用自带WinGet默认可能不支持安装scoop。
使用下列命令查询:
winget --version
winget source list
winget search scoop
winget(微软官方),现在越来越主流。微软亲儿子。微软官方,2020年发布。完全免费。
例如:
winget install Git.Git
winget install Microsoft.VisualStudioCode
winget upgrade --all # 一键升级所有软件
优点:
* 官方维护
* 与 Windows 集成好
* 软件质量高
缺点:
* 开发者工具生态不如 scoop
WinGet 本身不要求管理员权限,但它所安装的应用如果需要写入 Program Files 等系统目录,仍会弹出 UAC 提示。
WinGet 的安装方式:在 Windows 11 上已预装,Windows 10 用户需通过微软应用商店安装"应用安装程序"(App Installer)获取。
WinGet 受益于微软的监管,软件包来源包括微软应用商店和社区仓库,并采用 SmartScreen 和 SHA256 哈希验证等安全措施。
Scoop更偏开发者 CLI 工具,风格非常 Linux。社区,开源。完全免费。
例如:
scoop install bat
scoop install rg
scoop install fd
scoop install gcc
scoop install make
scoop install python
scoop install python@3.11 # 安装指定版本
scoop update *
特点:
* 不污染系统
* 不需要管理员权限
* 安装在用户目录
* 绿色化
* 很适合程序员
开发者首选。Scoop 采用"用户空间优先"的设计理念,所有软件默认安装在用户目录下,彻底避免系统级权限操作,无需管理员权限即可完成安装,并完美支持多用户环境隔离。
Scoop 的核心设计目标是永不需要管理员权限,所有内容安装在用户目录 ~\scoop\ 下,不接触注册表,不写入系统目录。
Scoop 还支持多版本管理,如果某个应用必须管理员权限,Scoop 会将其归类到 nonportable bucket 并明确标注。
Scoop 将应用安装在用户主目录(~/scoop)下,从而避免了对管理员权限的需求,这一设计绕过了 UAC 弹窗,也防止对系统进行全局更改。
Scoop 专注于便携式应用,减少系统杂乱和潜在冲突,其设计灵感来自 Unix 包管理器,旨在为开发者和高级用户提供一致、简洁的使用体验。
适合谁: 适合希望在没有管理员权限的情况下快速搭建开发环境的开发者、偏好轻量安装和便于清理的高级用户,以及在受限环境中运行的学生。
使用scoop:
scoop install llvm
它只是:下载 + 解压
不像传统 Windows 安装:
* 注册表
* MSI
* 全局污染
* DLL地狱
所以:可控性很强
Chocolatey 主要安装传统 Windows 软件。社区/商业,2011年发布。开源版免费,企业版付费。
比如:
* Chrome
* 7zip
* Git
* VSCode
* Node.js
* Python
* CMake
* Docker Desktop
choco install git
choco install office365
choco install sql-server-management-studio
实际上它会:
* 下载安装包
* 静默安装
* 配置 PATH
* 管理版本
特点:
* 更像 apt/yum
* 经常需要管理员权限
* 安装 MSI/EXE
* 修改注册表
* 系统级安装
软件库很大,历史很久。很多老 Windows 软件都有。
曾经 Windows 包管理器老大。
现在依然很多人用。
尤其:
* 老项目
* 企业环境
* GUI 软件
Chocolatey 可以把安装程序(installers)、可执行文件(executables)、压缩包(zips)和脚本(scripts)封装成编译好的包进行统一管理。
具体而言,Chocolatey 可以在 Windows 机器上部署软件包、应用程序、zip 文件、二进制文件、脚本以及安装程序。覆盖的软件类型非常广泛:
仓库里可以找到 Chrome、VLC、Adobe Acrobat Reader、7-Zip 等常用软件,也有开发者常用工具,如 Git、Notepad++、PuTTY、Node.js 和 JDK。
在所有 Windows 包管理器中,Chocolatey 的软件包列表最多,超过 10000 个,包含从 PowerToys、CrystalDiskInfo 等 Windows 实用工具,到 VS Code、Blender 等专业软件。
Chocolatey 最常见的使用场景是一次性在多台机器上完成软件安装和更新,像很多 DevOps 工具一样,用于自动化重复性任务。
Chocolatey 提供三个主要产品:Chocolatey for Business、Pro Edition 和开源版;其中 Chocolatey for Business 面向希望将自动化包管理集成到 DevOps 工作流、并统一管理多个 Windows 环境的企业用户。
建议:
类型 | 推荐工具 |
GUI软件 | winget |
CLI开发工具 | scoop |
企业兼容 | choco |
混用:
//GUI
winget install Microsoft.PowerShell
winget install Microsoft.VisualStudioCode
``
// CLI
scoop install bat rg fd fzf
// 某些特殊软件
choco install openvpn
Ninite
Ninite 更像“批量安装和更新常用软件”的工具。它主打自动下载安装,适合一次性装浏览器、压缩软件、聊天工具、运行库这类常见桌面软件,操作比 Chocolatey 和 Scoop 更傻瓜化。(ninite.com)
Ninite 为批量安装和快速上手提供了最高程度的简便性,尽管它的软件目录有限,自定义空间也很小。
如果你偏好易用的界面,Ninite 会是理想选择。 它不像其他工具那样需要命令行操作,更适合普通用户在重装系统后一次性批量安装常用软件。
适合谁:
新手用户
重装系统后一次性装一堆常用软件
不想记命令的人
不过它不像 Chocolatey、WinGet、Scoop 那样偏“完整包管理器”,更偏向“批量安装器/更新器”。(ninite.com)
包括RuckZuck 以及 Patch My PC 等工具,它们在特定的批量管理或补丁更新场景中也是不错的替代方案。
UniGetUI (原 WingetUI)
UniGetUI 并不是一个独立的包管理器,而是一个为多个命令行工具提供图形界面的第三方前端。
多合一界面:它将 WinGet、Chocolatey 和 Scoop 的功能整合进一个可视化窗口中。
易用性:适合不喜欢记忆命令行指令的用户,可以直接在界面中搜索并批量管理来自不同仓库的软件。
现在趋势
Windows 正在:Linux化。
包括:
* DevOps
* Embedded
* AI
* Cloud
* Backend
都这样。
小提示(国内用户):
这三个包管理器(Chocolatey、WinGet、Scoop)的软件源都在境外,使用时需要确保网络能够正常访问。如有访问困难,建议配置代理或使用镜像源。