Windows 程序包管理器
使用 Linux
各大发行版的用户相信对包管理器 [1] 并不陌生, Debian
有 apt
, CentOS
有 yum
, 而 Windows
平台上第三方的包管理器有 scoop
和 chocolatey
,现在微软推出了自己的 Windows
程序包管理器及其命令行工具 winget
[2] , 目前处于公共预览版阶段。
说起来, scoop
默认很多都是连接的 GitHub
, 不科学上网速度实在是太慢了,而 chocolatey
默认软件源的版本更新可能不太及时。目前看微软的这个工具有些也是 GitHub
, 希望后续官方能够支持更多常用软件,速度能够上来,能够有靠谱的国内镜像源就更好。
WinGet “借鉴”了加拿大开发者 Keivan Beigi 的开源项目(已不再维护)[3],微软高级项目经理 Andrew 却没兑现当初的承诺,甚至连差旅费都没给报销,在被作者本人爆出来后才发了个不解决实质问题的感谢声明。
详情可阅读 Keivan Beigi 和 Andrew 的博文。
https://medium.com/@keivan/the-day-appget-died-e9a5c96c8b22
https://devblogs.microsoft.com/commandline/winget-install-learning/
安装
Windows 10 1709 (16299)
或更新版本安装方式有三种:
-
微软应用商店(推荐)
-
Github Release
从
Release
[7] 下载最新安装程序,缺点就是不会自动更新。如果安装报错,需要安装Desktop Bridge VC++ v14 Redistributable Package
[8] 和Microsoft.VCLibs.140.00.UWPDesktop package
-
从源码编译
满足以下条件,使用
Visual Studio 2019
自行编译最新源码后安装:
在我的笔记本和台式机上通过应用商店安装,笔记本上的自动加入了环境变量,而台式机上的并没有,此前的 Windows Terminal
也是这种情况,表现形式都是无法通过命令直接使用或者 Win + R
无法快捷打开。解决方式就是手动将 %USERPROFILE%\AppData\Local\Microsoft\WindowsApps
加入环境变量。
用法
常用命令 [12] :
winget install <package name>
: 安装应用程序winget install -exact
: 使用严格匹配的字符串安装应用
winget show <package name>
: 显示应用程序详细信息winget search <keyword>
: 根据关键词搜索所有匹配的应用winget source
: 管理应用源winget source add <name> <source url>
: 添加应用源winget source list <source name>
: 显示源信息winget source update <source name>
: 更新源内容winget source remove <source name>
: 删除源winget source reset <source name>
: 删除所有第三方,重置到默认源
目前似乎还不能通过 winget
来卸载已经安装的应用。
官方源列表: https://github.com/microsoft/winget-pkgs
关于如何提交应用: https://github.com/microsoft/winget-pkgs#submitting-a-package
基本上就是构建如下格式的 YAML
文件, 以 manifests\<publisher>\<package>\<version>.yaml
路径给官方源提交一个 PR
|
|
官方也提供了两个工具 YamlCreate.ps1
[13] 和 Windows Package Manager YAML Generator
[14] 来生成模板文件。
最后通过 winget validate <manifest>
和 winget install -m <manifest>
来测试是否有效,通过测试后就可以提交了。