如果您是高级 Windows 用户或曾经使用过基于 Linux 的操作系统,那么对包管理器的概念应该有所了解。包管理器提供了集中的方式来安装和更新应用程序。Microsoft 为 Windows 11 和 Windows 10 用户提供了官方 Windows Package Manager 包管理器,简称为 winget。
Windows Package Manager 作为 App Installer 软件包的一部分被集成到 Windows 系统中,它完全基于命令行,主要通过 Windows Terminal 来使用。本文将介绍如何在 Windows 中使用 winget 包管理器,让您像 Linux 那样管理 Windows 中的软件包。
为 winget 更换国内源
为了提高国内使用体验和响应速度,我们可以将 winget 的源更换为国内的源。以下是操作步骤:
1、以管理员身份打开「命令提示符」。
2、执行以下命令,删除由 Microsoft 维护的官方源:
winget source remove winget
3、执行以下命令添加 winget 国内源:
winget source add [源名称] [源地址]
例如,若要添加中科大开源软件镜像源,可执行以下命令:
winget source add winget https://mirrors.ustc.edu.cn/winget-source
建议就使用winget
作为名称,以便在需要时轻松重置回官方源。
4、换源完成后,可以通过以下命令进行验证和查看:
winget source list
5、如果要恢复使用 Microsoft 官方源,可以使用以下命令进行重置:
winget source reset winget
为 winget 更换国内源
如果在「步骤 3」时添加了其他名称的镜像源,可以按「步骤 1」将自定义名称的源删除,然后再重新添加。
winget 源 | 内容 | 地址 |
---|---|---|
微软官方 | Windows 官方应用商店中的应用程序 + 开源软件包 | https://cdn.winget.microsoft.com/cache |
中科大开源软件镜像站 | 开源软件包 | https://mirrors.ustc.edu.cn/winget-source |
好像就中科大的提供 winget 国内镜像,有点少啊。
使用 winget 搜索和安装应用程序
对于不熟悉基于文本界面的用户来说,刚开始使用 winget 时可能有点令人望而却步,但实际上它非常简单易用。winget 的基本用法只涉及搜索和安装应用程序。请按照以下步骤操作:
1、在 Windows 11 中鼠标右击「开始」菜单 – 选择打开「终端管理员」。
2、要搜索应用程序,请执行:
winget search <AppName>
例如,输入winget search Chrome
来尝试查找 Google Chrome。
使用 winget 搜索应用程序
3、如果首次使用winget
命令,需要同意服务条款,请按Y
然后按回车键。查询结果中可以看到包括不同版本的 Chrome,以及一些名称相似的应用程序。
4、为了获取和安装正确的应用程序,最准确的方法是使用第二列中列出的包 ID。例如,要安装 Google Chrome 的稳定版,可以使用如下命令:
winget install Google.Chrome
使用 winget 安装应用程序
- 如果要安装的程序需要通过 Microsoft Store 获取(源在列表的最后一列),还需要同意服务条款,请按
Y
然后按回车键。 - 也可以在安装命令中添加
--accept-package-agreements
参数,以自动接受任何协议。
5、安装完成后,可以重复这个过程来安装其他任何需要的应用程序。
在 Windows 11 中使用基于文本的命令行界面安装应用程序非常简单,而且有许多应用程序都可以通过winget
命令实现静默安装,而且速度非常快。正如我们之前提到的,您也可以使用 Windows Package Manager 安装来自 Microsoft Store 的应用程序。
使用 winget 更新应用程序
Windows Package Manager 的另一个功能是通过集中的界面保持应用程序的更新。如果有一个或多个应用程序可在 winget 仓库中获取(即使不是通过该仓库安装),也可以使用它一次性轻松更新这些应用:
1、在 Windows 11 中鼠标右击「开始」菜单 – 选择打开「终端管理员」。
2、执行以下命令查看可用的软件更新包列表:
winget update##或者winget upgrade
使用 winget 更新应用程序
3、要更新特定的软件包,请运行:
winget update <ID>
使用 winget 更新应用程序
请将<ID>
替换为想要更新的包 ID。
4、如果要更新所有软件包,可以运行:
winget update --all
5、也可以添加--include-unknown
参数来安装计算机上未知版本软件包的最新版本。
6、软件包将逐个进行更新。同样地,一些安装程序在更新时可能需要人工干预,但可以使用--disable-interactivity
参数来跳过。
您可以随时再次运行此操作,以确保应用程序保持最新。
使用 winget 卸载应用程序
当然,我们也可以使用 winget 包管理器来卸载应用程序:
1、在 Windows 11 中鼠标右击「开始」菜单 – 选择打开「终端管理员」。
2、运行以下命令查看计算机上安装的所有软件包:
winget list
3、找到想要卸载的应用程序包 ID,再运行以下命令:
winget uninstall <id>
使用 winget 卸载应用程序
将<id>
替换为要移除的包 ID。
4、按照屏幕上的指示进行操作,或者使用--disable-interactivity
参数以静默方式移除应用程序。
使用 winget 导出和导入软件包列表
winget 工具的另一个强大功能是能够将 Windows 中已安装的所有软件包导出为一个 JSON 文件。在设置新电脑时,就可以导入该文件,以便一次性安装列表中的所有应用程序。
导出软件包列表
要导出 Windows 中已安装的软件包列表,只需运行:
winget export -o <output>
将<output>
替换为要存储包列表文件的路径。某些应用可能需要同意源协议。
- 可以使用
--source
参数仅筛选来自选定源(如 winget 或 msstore)的软件包。 - 可以使用
--version
参数导出特定版本的应用程序,而不是安装最新版本。
使用 winget 导出软件包列表
还可以将该文件移动到 U 盘或 OneDrive 这样的云服务中,以便稍后在其他设备上导入。在此过程中,可能会出现许多错误,因为许多应用程序是预装在 Windows 中的,或者可能不是通过 winget 或 msstore 源安装的。
此操作只会导出软件包列表,不包括实际的安装程序。在导入时,新电脑需要连接到 Internet,以便下载和安装这些软件包。
导入软件包列表
要导入软件包列表,可以使用以下命令:
winget import -i <import-file>
其中<import-file>
是要导入的文件路径,还可以添加--accept-package-agreements
参数以接受所有需要同意的源的协议。
使用 winget 导入软件包列表
- Windows Package Manager 将尝试逐个安装软件包列表中的所有应用程序。
- 由于其中一些是随 Windows 11 一起提供的应用程序包,因此可能已经安装了某些应用程序。
- 对于新的应用程序和更新,可能需要与每个安装程序进行交互,或者在导入时使用
--disable-interactivity
参数来跳过所有安装程序的交互过程。
Winget 1.6.3482 版本更新
Winget 1.6.3482 版本适用于 Windows 10(1809+)和 Windows 11。在此次更新中,禁用了实验性功能并更新了商店证书,以提高系统安全性。需要注意的是,当前商店证书将于 2024 年 3 月初到期。
在新版本中,winget configure
命令是一个稳定的功能。可以帮助你在 Windows 系统上自动处理设置和配置,从而创建理想的开发环境。通过应用 WinGet 配置文件,能够更轻松地安装和管理软件包、应用程序、编程语言、框架、工具或项目所需的设置。
此次稳定版本还引入了对软件包依赖性的全面支持。现在,通过使用winget download
命令,可以将软件包安装程序下载到本地,实现更加灵活的管理。
变更摘要:
- 在安装包枚举时,现在包括了框架包。
- 引入了安装程序之间的强弱比较功能。
- 商店证书已经更新。
本文应该让您对如何使用 winget 包管理器有了一个基本了解。您可以进一步深入,通过添加自定义源获取应用程序,例如公司内部的应用程序存储库,并验证应用程序的清单文件。但本文介绍的核心功能已经非常实用。