02 · 操作系统 · Windows
用 winget 安装软件
本篇你将学到
- winget 是什么,电脑上有没有
- 五个常用动作:搜索、查看、安装、升级、卸载
- 为什么要用
--id和-e - 软件从哪来(winget 源和 msstore 源),怎么装得放心
winget 是什么:装软件的“外卖平台”
平时装软件要自己找官网、找下载按钮、一路点“下一步”,还容易点进山寨下载站。winget(全称 Windows 程序包管理器,Windows Package Manager)换了个办法:你在命令行里说出软件的名字,它去软件目录里查,再帮你下载、安装、升级、卸载[1]。
就像点外卖:不用自己跑去每家店,在一个平台上搜、下单,送上门。这类工具统称包管理器。Mac 上的 Homebrew、Linux 上的 apt 也是同一个思路,要在命令行里用(命令行的基础见 02-07)。
电脑上有没有
winget 是“应用安装程序”(App Installer)的一部分。Windows 11、较新的 Windows 10 都自带它,由 Microsoft Store 负责送达和更新[1]。Windows 10 要 1809 版(内部版本 17763)或更新的版本才支持[1]。
检查方法:打开 PowerShell 或 Windows 终端,输入:
winget --version
显示版本号就说明能用。几点要知道:
- 新电脑第一次登录后,Windows 要在后台花点时间注册 winget,刚登录时可能暂时用不了[1],等一会儿再试。
- 提示找不到 winget,可能是“应用安装程序”没装,去 Microsoft Store 搜索“应用安装程序”安装或更新[1]。
- 不用管理员模式也能用。有的软件安装时需要管理员权限,Windows 会弹窗请你确认;点“否”的话这个软件就装不上[1]。在管理员窗口里运行 winget 就不会弹窗,所以更要当心,只装你信任的软件[1]。
五个常用动作
| 想做什么 | 命令 | 说明 |
|---|---|---|
| 找软件 | winget search 关键词 |
在名称、ID、描述、简称、标签里找[2] |
| 看详情 | winget show --id 软件ID |
显示版本、发布者、来源等[3] |
| 安装 | winget install --id 软件ID -e |
下载并运行安装程序[4] |
| 看装了什么 | winget list |
不是用 winget 装的软件也会列出来[5] |
| 升级 | winget upgrade / winget upgrade --all |
先看有什么可升级,再全部升级[6] |
| 卸载 | winget uninstall --id 软件ID -e |
卸载指定软件[7] |
一个典型流程,以压缩软件 7-Zip 为例:
winget search 7zip # 1. 搜,记下表里的 ID
winget show --id 7zip.7zip -e # 2. 核对发布者、主页
winget install --id 7zip.7zip -e # 3. 安装
–id 和 -e:说清楚要哪一个
winget install 后面直接写名字也行,但 winget 默认做的是模糊匹配:不分大小写,名称、ID、简称里包含这几个字就算匹配,也不支持 * 这种通配符[4]。比如 winget install firefox 会同时匹配到普通版、延长支持版、开发者版……匹配到不止一个时,winget 会让你把条件写得更具体[4],不会替你猜。
所以推荐的写法是:
先用 search 查到 ID,再用 --id ID -e 安装、卸载,就不会装错。
软件从哪来:winget 源和 msstore 源
winget 去哪里查软件,由源(source)决定。默认有三个,用 winget source list 可以看到[8]:
- winget:社区软件仓库,大部分常见软件都在这里;
- msstore:Microsoft Store 应用商店;
- winget-font:字体专用的社区仓库[8]。
同一个软件可能两个源里都有,ID 写法不一样。想只从某个源装,加 --source(简写 -s),比如 winget install --id 7zip.7zip -e --source winget[4]。用 winget 卸载时有时会弹出 Microsoft Store 的协议提示,加上 --source winget 可以避开[7]。
怎么装得放心
- 只用官方的源。往 winget 社区仓库提交的软件,会先经过自动检查,确认符合政策、没有已知的恶意内容,必要时还会人工审核[9]。网上教程让你
winget source add一个不认识的源,先别加。 - 装之前看一眼发布者。
winget show会显示发布者和主页[3]。名字很像、发布者却对不上的,别装。 - 用
--id … -e,不靠模糊的名字。 - 少用管理员窗口:装软件时 Windows 弹窗问“是否允许更改设备”,看清是不是你要装的软件再点“是”[1]。
一次把软件都升级
winget upgrade # 只列出有新版本的软件,不会真的升级
winget upgrade --all # 把能升级的全部升级
微软建议先运行不带参数的 winget upgrade,看看哪些会被升级,再用 --all[6]。有些软件不提供版本号,winget 不知道它有没有新版,就没法帮它升级[6]。
可选:换电脑时一键装回
在源里找不到对应项的软件导不出来,导出时 winget 会给出警告[10]。
动手模拟
在模拟的 PowerShell 里走一遍:搜索 → 看详情 → 安装 → 升级 → 卸载。软件列表、版本号都是练习用的;其中“7-Zip Plus”是虚构的,用来练习核对发布者。
可以直接打字,也可以点上面的命令按钮把命令填进去,再按回车(或点“运行”)。↑ 键翻出上一条命令。输入 help 看看支持哪些命令。
小结
- winget 是 Windows 自带的包管理器,在“应用安装程序”里,用
winget --version检查。 - 流程:
search找 ID →show核对发布者 →install --id ID -e。 winget upgrade先看,winget upgrade --all全部升级;uninstall卸载。- 只用官方源,不认识的源和软件不装。
下一篇讲环境变量与 PATH:为什么有时候明明装了程序,命令行却说“找不到”。
参考资料
- [1]Use WinGet to install and manage applications · Microsoft Learn
https://learn.microsoft.com/en-us/windows/package-manager/winget/ - [2]search command (winget) · Microsoft Learn
https://learn.microsoft.com/en-us/windows/package-manager/winget/search - [3]show command (winget) · Microsoft Learn
https://learn.microsoft.com/en-us/windows/package-manager/winget/show - [4]install command (winget) · Microsoft Learn
https://learn.microsoft.com/en-us/windows/package-manager/winget/install - [5]list command (winget) · Microsoft Learn
https://learn.microsoft.com/en-us/windows/package-manager/winget/list - [6]upgrade command (winget) · Microsoft Learn
https://learn.microsoft.com/en-us/windows/package-manager/winget/upgrade - [7]uninstall command (winget) · Microsoft Learn
https://learn.microsoft.com/en-us/windows/package-manager/winget/uninstall - [8]source command (winget) · Microsoft Learn
https://learn.microsoft.com/en-us/windows/package-manager/winget/source - [9]Submit your manifest to the repository · Microsoft Learn
https://learn.microsoft.com/en-us/windows/package-manager/package/repository - [10]export command (winget) · Microsoft Learn
https://learn.microsoft.com/en-us/windows/package-manager/winget/export - [11]import command (winget) · Microsoft Learn
https://learn.microsoft.com/en-us/windows/package-manager/winget/import