各家操作系统都有自己的包管理器,能够使用统一的软件源为电脑获取应用。比如Debian的apt,macOS的Homebrew。Windows一直缺少一个广泛使用、功能完备的包管理器,Chocolatey和NuGet也并不是非常完善。终于微软发布了WinGet包管理器,也算是对开发社区更加友好的重要举措。
申请WinGet内测
在写这篇文章的时候,WinGet目前还处于公共预览版阶段,所以需要从Windows 程序包管理器预览体验计划链接的问卷中填入你的微软账号邮箱。申请通过后会给你发一封邮件,然后你就可以在Microsoft Store中等待包管理器的更新了。但现在WinGet已经公测,也已经随Windows推送。
如果你不想使用Microsoft Store,你也可以在GitHub Releases下载单独的安装包,或者加入Windows Insider,直接体验测试版的Windows。
WinGet基本操作
WinGet兼容命令提示符,当然也兼容PowerShell。我使用PowerShell 7.1.1 + Windows Terminal来运行。
以下是winget命令的操作。
那就来实地操作一下,比如安装个TIM?
输入
winget install TIM
来安装TIM。winget会从腾讯的服务器下载最新的安装包,然后静默安装。
小彩蛋:命令后面加–rainbow参数,进度条会变成彩虹色~
下载完成后会请求管理员权限,没啥问题,毕竟Linux装个软件还得输sudo不是。
后面的过程基本是静默安装,只弹出了一个“TIM正在运行,是否关闭TIM”的对话框。也没有任何的捆绑插件,十分纯净。
我又测试了安装华为浏览器,也是静默安装的。这里出现了一个问题:应用名“Huawei Browser”有空格,不能被正确识别。
但是可以使用包名代替:
这样就可以正常安装了。
值得注意的是,这个软件似乎是用户投放的,不属于官方。这个人好像还传了许多奇奇怪怪的软件……
关于软件源
Microsoft的初衷是建设一个对开发者更友好的包管理器,但正如你所见,对于一般人来说,WinGet似乎也挺合适。正如上面的测试,TIM这种日常软件也被包含在软件源中。而且绝佳的地方是它没有捆绑,可以免于安装整个全家桶的困扰。
可以使用winget search命令来搜索软件包。比如搜索xiaomi,出现了MIUI+客户端。
当然,微软自家的应用当然不能落下(虽然不都是微软的应用):
也有其他家的开发工具:
如果你想打会游戏,甚至还有……
软件包管理器的默认软件源架设在Azure上,但软件源的代码GitHub上。如果你发现缺少你的应用,可以在这里提交Pull Request。也有很多爱好者自行上传的应用。未来也可能会出现第三方软件源。
winget.run是更加友好的软件包查找器,似乎与PyPI有点相似?
一些缺陷
某些软件会出现安装失败的现象。比如上文提到的MIUI+,CLI中提示安装失败:
不光安装失败,还把我之前装的那个版本也整坏了……
而且目前对一些我们可能认为理所当然的东西支持还不稳定,甚至……卸载。它被划为了实验性功能。
评论