系统极客一直在努力
专注操作系统及软件使用技能

如何使用 winget 包管理器:搜索、安装、导入导出和更换国内源等

命令行

如果您是高级 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 更换国内源
为 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 搜索应用程序
使用 winget 搜索应用程序

3如果首次使用winget命令,需要同意服务条款,请按Y然后按回车键。查询结果中可以看到包括不同版本的 Chrome,以及一些名称相似的应用程序。

4为了获取和安装正确的应用程序,最准确的方法是使用第二列中列出的包 ID。例如,要安装 Google Chrome 的稳定版,可以使用如下命令:

winget install Google.Chrome
使用 winget 安装应用程序
使用 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 更新应用程序
使用 winget 更新应用程序

3要更新特定的软件包,请运行:

winget update <ID>
使用 winget 更新应用程序
使用 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 卸载应用程序
使用 winget 卸载应用程序

<id>替换为要移除的包 ID

4按照屏幕上的指示进行操作,或者使用--disable-interactivity参数以静默方式移除应用程序。

使用 winget 导出和导入软件包列表

winget 工具的另一个强大功能是能够将 Windows 中已安装的所有软件包导出为一个 JSON 文件。在设置新电脑时,就可以导入该文件,以便一次性安装列表中的所有应用程序。

导出软件包列表

要导出 Windows 中已安装的软件包列表,只需运行:

winget export -o <output>

<output>替换为要存储包列表文件的路径。某些应用可能需要同意源协议。

  • 可以使用--source参数仅筛选来自选定源(如 wingetmsstore)的软件包。
  • 可以使用--version参数导出特定版本的应用程序,而不是安装最新版本。
使用 winget 导出软件包列表
使用 winget 导出软件包列表

还可以将该文件移动到 U 盘或 OneDrive 这样的云服务中,以便稍后在其他设备上导入。在此过程中,可能会出现许多错误,因为许多应用程序是预装在 Windows 中的,或者可能不是通过 wingetmsstore 源安装的。

此操作只会导出软件包列表,不包括实际的安装程序。在导入时,新电脑需要连接到 Internet,以便下载和安装这些软件包。

导入软件包列表

要导入软件包列表,可以使用以下命令:

winget import -i <import-file>

其中<import-file>是要导入的文件路径,还可以添加--accept-package-agreements参数以接受所有需要同意的源的协议。

使用 winget 导入软件包列表
使用 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 包管理器有了一个基本了解。您可以进一步深入,通过添加自定义源获取应用程序,例如公司内部的应用程序存储库,并验证应用程序的清单文件。但本文介绍的核心功能已经非常实用。

赞(2) 赞赏

评论 抢沙发

微信赞赏