WinGet支持Windows101709及以上版本,现在使用Windows10的同学们就可以直接下载安装。官方提供了下面的几种安装方法:
目前WinGet还在Preview阶段,因此如果你想用官方的渠道安装WinGet,那么你需要:
之后,你的系统上面就应该出现(命令行环境下的)WinGet本体,并可以通过MicrosoftStore同步更新。
安装好WinGet之后,我们就可以在PowerShell或者CMD中用winget命令调用它了。
直接运行命令winget,WinGet会给我们展示自己的一些基础操作,包括安装软件、显示软件信息、显示应用源、搜索软件、验证安装程序等等。我自己在日常使用Windows时,是经常使用Scoop进行软件安装管理的,这里我将WinGet和Scoop直接面对面,进行命令的对比,看看常用的几个功能(安装软件、显示信息、搜索软件)之中WinGet和Scoop之间的区别。
安装软件大家都一样,同样都是wingetinstall{软件名称}和scoopinstall{软件名称}。比如这里,我分别使用WinGet和Scoop下载安装Postman:
另外,WinGet还有一个比较骚的进度条,在刚刚安装命令之后加上--rainbow的参数,即可解锁彩虹进度条!(净搞这些有的没的(/▽\))
同样的,WinGet和Scoop都有支持显示某一个软件的详细信息。这里,WinGet使用的命令是:
wingetshowpostman而Scoop与之对应的命令为:
WinGet和Scoop也一样支持搜索某一软件。使用的是相同的search{软件名称}的命令。比如,搜索Steam:
除了上面介绍的三个命令以外,WinGet还有方便WinGet软件源开发管理人员使用的validate命令和hash命令等等。
尚处于Preview阶段的WinGet目前是利用Manifest清单文件来管理与安装不同的软件,这一设计理念和Scoop是高度相似的。为了让各位彻底理解这一过程,我们先介绍WinGet和Scoop这类Windows软件包管理工具在安装软件过程中具体是怎样工作的。
WinGet是典型的「Windows思路」包管理工具,由于Windows本身的设计,软件的安装几乎都伴随着「软件安装器」的使用。因此,WinGet一类「包管理工具」,包括Scoop在内,实际上都是代替我们:
而WinGet这类包管理是怎样知道去哪里寻找软件、下载软件和进行安装的呢?答案就是通过读取软件对应的Manifest清单文件。
就如图中描述的过程一样,WinGet和Scoop在安装软件过程,都是先去各自维护的软件Manifest库,寻找相应的软件安装Manifest清单文件,这一文件就像说明书一样指导软件包管理工具安装软件的具体过程。WinGet和Scoop等Windows包管理工具就会依据软件相应的Manifest文件:准备、下载、安装、善后。
WinGet提供了一个source的命令,利用wingetsource
当然,由于WinGet也才问世几天,所以还没有出现除了官方仓库外可用的软件仓库。
WinGet在我看来,和WindowsTerminal一样,都是Windows团队让Windows系统更加「开发者友好」的又一努力。不过,WinGet现在着实仅是一个半成品,其半成品最重要的体现在于:仅支持安装软件,不支持卸载软件。
同时,WinGet也并没有逃脱Windows类包管理工具的通病——「软件安装器」并非真正意义上的「软件包管理工具」。目前来看,WinGet也仅仅是和社区优秀作品Chocolatey、Scoop等Windows包管理工具原理完全一致的一个工具,并没有因为微软自己的加入而有新的花样。
希望未来随着不断迭代,WinGet能够变得不是为了造轮子而造轮子,成为真正意义上的「Windows包管理工具」,让开发者朋友们像看WindowsTerminal一样高呼「真香」。感谢阅读。