软件包管理工具,是电脑中自动安装、配置、卸载和升级软件包的工具。基于命令行的包管理工具已经在 *NIX 世界中被广泛使用,不论是 macOS 的 Homebrew,还是 Linux 各大发行版自己的包管理(APT、Yum、Pacman……),它们都不仅有着完善的使用机制,还有丰富的软件包生态,是 *NIX 系统安装、管理软件包的不二之选。
Windows 在「包管理工具」方面则一直乏善可陈。社区的努力让 Windows 有了 Chocolatey 以及我曾经极力推荐的 Scoop,Windows 自己在历史上也曾经推出过具有「包管理工具」类似功能的 OneGet 和 NuGet。但是前二者一直依赖社区维护者的用爱发电,后二者则更强调开发环境的软件安装,没有提供日常用户所使用的软件,都不尽完美。
WinGet —— Windows 官方的包管理工具
在刚刚结束的 Microsoft Build 2020 上,微软终于发布了面向广大 Windows 普通用户的 Windows 官方「包管理工具」—— Windows Package Manager,也就是 WinGet。有了 WinGet,Windows 用户终于可以通过官方途径来在命令行环境下管理软件了。
WinGet 支持 Windows 10 1709 及以上版本,现在使用 Windows 10 的同学们就可以直接下载安装。官方提供了下面的几种安装方法:
目前 WinGet 还在 Preview 阶段,因此如果你想用官方的渠道安装 WinGet,那么你需要:
或是加入 Windows 10 Insider,并下载安装 Windows Insider 版本的系统
或是通过官方注册通道来将自己加入 WinGet Preview flight ring
关注少数派,在后台回复「Winget」即可获得下载链接。
之后,你的系统上面就应该出现(命令行环境下的)WinGet 本体,并可以通过 Microsoft Store 同步更新。
另外,你也可以直接去 WinGet 的官方 GitHub 仓库,在 Release 页面手动下载 WinGet 的安装程序进行手动安装。
在 WinGet 的 GitHub Release 页面手动下载安装
安装好 WinGet 之后,我们就可以在 PowerShell 或者 CMD 中用 winget 命令调用它了。
WinGet:微软官方开发的 Windows 包管理工具
直接运行命令 winget,WinGet 会给我们展示自己的一些基础操作,包括安装软件、显示软件信息、显示应用源、搜索软件、验证安装程序等等。我自己在日常使用 Windows 时,是经常使用 Scoop 进行软件安装管理的,这里我将 WinGet 和 Scoop 直接面对面,进行命令的对比,看看常用的几个功能(安装软件、显示信息、搜索软件)之中 WinGet 和 Scoop 之间的区别。
安装软件大家都一样,同样都是 winget install {软件名称} 和 scoop install {软件名称}。比如这里,我分别使用 WinGet 和 Scoop 下载安装 Postman:
# 使用 WinGet 安装一遍
winget install postman# 卸载,再用 Scoop 安装一遍
scoop install postman
使用 WinGet 和 Scoop 下载安装 Postman
安装过程大概都是类似的,WinGet 安装的是 exe 文件,而 Scoop 安装了 NuGet 的 .nupkg 文件。二者都是 Windows 上常见的软件安装文件。界面上,WinGet 的下载进度条比较酷炫,而 Scoop 使用的依旧是「字符进度条」,简单淳朴。
另外,WinGet 还有一个比较骚的进度条,在刚刚安装命令之后加上 --rainbow 的参数,即可解锁彩虹进度条!(🌈 净搞这些有的没的 (/▽\))
winget show postman
scoop info postman
# WinGet 搜索 Steam
winget search steam
# Scoop 搜索 Steam
scoop search steam