软件包管理器是电脑中自动安装、配置、卸载和升级软件包的工具。

在 Ubuntu、Debian 下我们有 apt-get,在 CentOS、Fedora、RHLE 下有 yum 或 dnf,在苹果 macOS 下也有第三方的 Homebrew brew 可以使用。各大发行版都有自己的好用的包管理工具。
而Windows却只有Chocolatey 以及 Scoop这样的不温不火的包管理器。

在 Build 2020 上微软终于发布了全新的官方包管理命令工具Windows Package Manager —— Winget。 Windows 用户终于迎来了官方命令行包管理器。

build2020
build2020

使用起来也很简单,直接输入命令 winget,能获取基本帮助,包括命令格式和命令参数。这样你就可以了解到如何使用它,以及安装和管理软件了。可以看到 winget 的命令格式:

winget [] [ ]

WinGet
WinGet

可以通过下列命令管理软件

winget install    安装指定的软件
winget show    查看软件的信息
winget source    管理应用源
winget search    搜索应用
winget hash    哈希安装程序的帮助程序
winget validate    验证清单文件
winget -v,–version    显示 winget 的版本
winget –info    显示工具的常规信息

使用winget 查找软件
使用winget 查找软件

可以看到还是很方便的。

Winget 目前使用 Manifest 来管理和安装软件通过读取对应的 Manifest 清单来寻找软件。
WinGet可以帮助用户 寻找软件官方发布地址- 下载对应版本的软件-将下载的软件进行安装

微软官方维护的 winget-pkgs 仓库
微软官方维护的 winget-pkgs 仓库

可以看到微软官方维护的 winget-pkgs 仓库软件覆盖速度以及更新都是很及时的。

Winget 目前属于最初期的预览阶段,因此还不支持卸载软件。

近日,开源项目 AppGet 作者 Keivan Beigi 与微软 WinGet 项目的“抄袭纠纷”事件迎来了最新进展。微软方面做出回应,负责微软应用程序模型的程序经理 Andrew Clinick 在其博客中表示,微软的 WinGet 确实受到了 AppGet 的启发,他说:“AppGet 帮助我们更好的开发了产品。”

Keivan Beigi 发文说 The Day AppGet Died
Keivan Beigi 发文说 The Day AppGet Died

Keivan Beigi 称,微软 Windows Package Manager(WinGet)的核心机制、术语、清单格式和结构,甚至包括存储库的文件夹结构都深受 AppGet 的启发。但微软只在 Build 大会上简单的提到了一次 AppGet。

微软并没有对此说法提出异议,而是说:“我们的目标是为客户和社区提供一个伟大的产品,在这个产品中,每个人都可以贡献并得到认可。”

Andrew Clinick 在博文中提到:“在过去的几天里,我们提取了很多意见,并从中吸取了教训,显然我们没有达到这个目标。更具体地说,我们没能与 Keivan Beigi 和 AppGet 一起实现这个目标,这是我们最不希望看到的。”
双方似乎已达成和解,可能合作更多项目

微软承诺在 Windows Package Manager 即将更新的自述文件部分将 Keivan Beigi 的贡献作出描述。

Andrew Clinick 称,他们已经联系了 Keivan Beigi ,目前正在讨论这一问题。

Keivan Beigi 也在GitHub 上发表评论说:“我和 Andrew 一直在讨论一些领域的问题,希望很快能与你们分享一些东西。”