包管理器 winget 使用指南

winget 是 windows 10 平台的一个包管理工具,能够在终端通过简单的命令行实现软件的安装、更新、卸载等,与之类似的有 Scoop 和 Chocolatey. 由于 winget 是官方支持,因此安全性、兼容性方面都有保障. 若你和我一样是一个 「更新狂」, 那么你以后更新软件将十分惬意,没有必要去进行一系列繁杂的下载安装 … , 只需打开终端输入简单的命令即可 . 🍨


安装 winget

winget是一个安装包管理器,可在Windows 10 计算机上使用 winget 命令行工具来检索、安装、升级、删除和配置应用程序. 此工具是 Windows 程序包管理器服务的客户端接口.

可使用多种方法安装 winget 工具:

  • 应用商店

    在 Microsoft Store 安装的话会比较简单,因此很推荐 . 在应用商店搜索 应用安装程序 ,如下图所示,第一个就是,点进去安装即可.

    搜索应用安装程序

    已安装


  • github下载安装

    Github Release下载.appxbundle格式的文件,双击打开并运行安装即可.

microsoft/winget-cli: Windows Package Manager CLI (aka winget) 有英文介绍, 使用 winget 工具安装和管理应用程序 | Microsoft Docs 里面有详细的中文介绍 .

下载这个

备注

winget 工具需要 Windows 10 版本 1709 (10.0.16299) 或更高版本的 Windows 10.



使用方式

命令一览

winget 工具的当前预览版支持以下类型的安装程序:

  • EXE
  • MSIX
  • MSI

目前winget支持以下的命令 , 可以在 cmd 或者 powershell 输入 winget ,就能查看所有支持的命令.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
The following commands are available:
install Installs the given package 安装指定的应用
show Shows information about a package 显示具体应用的信息
source Manage sources of packages 添加、删除和更新winget工具访问的程序包管理器存储库
search Find and show basic info of packages 搜索想要的应用
list Display installed packages 列出来已经安装的应用
upgrade Upgrades the given package 升级指定的应用
uninstall Uninstalls the given package 卸载指定的应用
hash Helper to hash installer files 为安装程序生成 SHA256 哈希
validate Validates a manifest file 验证验证清单文件?
settings Open settings 打开winget设置
features Shows the status of experimental features 显示实验features的状态
export Exports a list of the installed packages 导出已安装软件包的列表
import Installs all the packages in a file 导入要安装软件包的列表
help 显示 winget 工具命令的帮助信息.

我们常用的也就几个,搜索、安装、卸载、升级,下面将会演示每一个的用法.


安装

安装 应用安装程序 后,可以通过在命令提示符下键入“winget”来运行 winget.

最常见的使用场景之一是搜索并安装你最喜欢的工具.

  1. 若要搜索某个工具,请键入 winget search <appname>.
  2. 确认你需要的工具可用后,可以通过键入 winget install <appname>安装该工具. winget 工具会启动安装程序,将应用程序安装在你的电脑上.

比如, 搜索 winget search music

会出现很多结果,其中有应用的名称、ID、版本以及Tag ,然后找到你想要安装的应用 ,比如我当前想要安装 Musescore , 那么只需输入 winget install Musescore.Musescorewinget install Musescore 就行了,更推荐前一种,因为前一种包含 ID ,这是独一无二的不会造成错误 .

当然如果你很明确你需要的应用,并且你知道它的名称,那么你就不需要去搜索了,你直接就安装就行了,不需要去搜索了,不过一般都需要去搜一下保证名称的正确性 .

接下来输入 winget install Musescore.Musescore 进行安装 .

有一些软件安装时会弹窗出来申请权限,点击是就行啦 ,如下图所示就是安装成功了.


更改安装路径 !!!

默认的安装路径是在C盘里面,当然安装路径是可以更改的,使用 -l 来指定路径,l代表 location 的意思.

比如:

1
winget install EliasFotinis.DeskPins -l "D:\20200213\Tools\DeskPins"

就指定了安装路径为 D:\20200213\Tools\DeskPins

==若需要指定安装路径,则千万切记一定要指定一个空的文件夹作为路径,否则卸载的话会把该路径下的东西全部都给删除了. 不要问我为什么知道==


卸载

卸载的话与安装类似 ,把 winget install   换成 winget uninstall

一般卸载前 我会使用 winget list 罗列出来已安装的所有应用,然后找到想要卸载的应用的名字,然后再卸载 . 因为有时候名字变了, 输入 winget uninstall 'MuseScore 3'winget uninstall "MuseScore 3"

为什么有引号呢?

因为应用的名字中有空格,因此需要用 ‘ ’ 或者 “ ”括起来

winget list

当前另一种方法卸载就是, 打开 geek uninstaller , 手动卸载也可 ,哈哈哈

geek uninstaller 是一款很好用的卸载工具,免费版的就足够用了

不妨一试


更新

一般我都会隔几个月统一更新应用,首先我会在终端输入命令 winget list来获取到现在 的应用列表. 然后在应用列表当中会显示已可更新的应用. 然后我们再更新这些可以更新的应用即可

输入 winget list 后普通不可更新的应用只有三列,可以更新的应用会有四列,第四列是它的最新版本号,表示这个应用有了更新,因此我们只需要更新这个应用即可 . 下面以 YesPlayMusic 为例 ,因为它可更新了.

输入: winget upgrade qier222.yesplaymusic 就行啦

然后会打印这样的信息,就表示更新成功.

1
2
3
4
5
6
7
8
已找到 YesPlayMusic [qier222.yesplaymusic]
此应用程序由其所有者授权给你.
Microsoft 对第三方程序包概不负责,也不向第三方程序包授予任何许可证.
Downloading https://github.com/qier222/YesPlayMusic/releases/download/v0.4.0/YesPlayMusic-Setup-0.4.0.exe
██████████████████████████████ 54.9 MB / 54.9 MB
已成功验证安装程序哈希
正在启动程序包安装...
已成功安装

导出与导入

导出功能的话,我觉得还是很实用的. 比如说有时候我们重装系统或者想要将一台计算机当中的应用迁移到另外一台计算机当中. 那我们就可以先导出,然后再导入,再进行安装,十分的便利 .

导出命令为: winget export "E:/app.json"

后面的路径及文件名自己定义就行.

对于不支持导出的应用的会报: 无法从任何源获得已安装的程序包 ,其余的都导出到指定的文件里面了.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
无法从任何源获得已安装的程序包: Bluetooth Audio Receiver
无法从任何源获得已安装的程序包: Maple
无法从任何源获得已安装的程序包: Ark View
无法从任何源获得已安装的程序包: PDF Reader - View, Edit, Annotate
无法从任何源获得已安装的程序包: 蒲云加速器 2.0.0
无法从任何源获得已安装的程序包: Office
无法从任何源获得已安装的程序包: 中国天气网
无法从任何源获得已安装的程序包: 简约倒计时
无法从任何源获得已安装的程序包: 哔哩
无法从任何源获得已安装的程序包: 网易云音乐-电台
无法从任何源获得已安装的程序包: 极光天气
无法从任何源获得已安装的程序包: Newsflow
无法从任何源获得已安装的程序包: 工具管家
无法从任何源获得已安装的程序包: 彩虹工具箱 2.0.2

就我体验而言,我觉得它的导出不太好用,因为很多很多的应用都无法导出.

导入的话与导出类似,也是输入命令行并指定文件路径即可

winget import "E:/app.json"


设置winget

winget settings 打开 winget 的设置 json 文件进行配置,有需求的话可以在官方 winget-cli/Settings.md at master · microsoft/winget-cli (github.com) 这里看看怎么配置 .

如果想要更改 winget 显示的进度条视觉效果,可以 输入 winget settings 后在setting.json里增加:

1
2
3
4
5
"visual": {
"progressBar": "rainbow"
// 三种样式可选:accent(默认值)、 retro、 rainbow
},

完整的json为

1
2
3
4
5
6
7
8
9
10
11
{
// For documentation on these settings, see: https://aka.ms/winget-settings
// "source": {
// "autoUpdateIntervalInMinutes": 5
// },
"visual": {
"progressBar": "rainbow"
// 三种样式可选:accent(默认值)、 retro、 rainbow
},
}

这样子进度条就会变成彩虹色了,若没有更改设置json下的这个配置,也可以在安装的命令后面加上命令 –rainbow 来启用彩虹进度条. 比如 : winget install Musescore.Musescore --rainbow 更改json后就不需要手动加 –rainbow 了.

手动 --rainbow

配置json后


其它

还有这个其他的命令不太常用,因此我也就不演示了.

比如: winget show calibre 可以显示应用的一些相关描述,还有下载链接的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 winget show calibre
尝试更新源时失败: winget
已找到 calibre [calibre.calibre]
Version: 5.21.0
Publisher: calibre
Author: Kovid Goyal
Moniker: calibre
Description: calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. It can also talk to e-book reader devices. It can go out to the internet and fetch metadata for your books. It can download newspapers and convert them into e-books for convenient reading. It is cross platform, running on Linux, Windows and macOS.
Homepage: https://calibre-ebook.com/
License: GPL-3.0-only
License Url: https://github.com/kovidgoyal/calibre/blob/master/LICENSE
Installer:
Type: Msi
Locale: en-US
Download Url: https://download.calibre-ebook.com/5.21.0/calibre-64bit-5.21.0.msi
SHA256: 5ac8bbd813210a0d1e9b3c7a8852f11aeec15abcbb89ed2b6edd09f51240c44a

所有支持的命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
The following commands are available:
install Installs the given package
show Shows information about a package
source Manage sources of packages
search Find and show basic info of packages
list Display installed packages
upgrade Upgrades the given package
uninstall Uninstalls the given package
hash Helper to hash installer files
validate Validates a manifest file
settings Open settings
features Shows the status of experimental features
export Exports a list of the installed packages
import Installs all the packages in a file



参考文献

使用 winget 工具安装和管理应用程序 | Microsoft Docs

winget-cli/doc at master · microsoft/winget-cli (github.com)

这或许是 Windows 上最好的包管理工具:Windows Package Manager 1.0 - 少数派 (sspai.com)

Add option to specify winget install directory · Issue #201 · microsoft/winget-cli (github.com)

可持續性的免费素材图片 (pexels.com)




叶上初阳干宿雨、水面清圆,一一风荷举.

– 周邦彦 《苏幕遮·燎沉香