如何在 Windows 2022 Server 中安装 Winget 包管理器

自 Linux 系统开始以来,无论是桌面还是服务器,他们都使用内置的包管理器来安装包,但是,在 Windows 上,这是不可能的。但是随着 Microsoft 的包管理器 Winget 的开发,包的安装现在更加方便和容易。然而,在撰写本文时,Winget 的功能仅存在于 Windows 10 和 11 系统中,而 Windows 服务器仍然被剥夺了它。但是,有一种方法可以通过满足其要求和依赖关系在 Windows 服务器上手动安装 Winget,在这里我们学习如何在 Windows Server 2022 上执行此操作。

什么是Winget?

Winget(开源)是Microsoft为其Windows 10和11操作系统开发的官方包管理器。它是一个命令行工具,可以通过 PowerShell 或终端用于管理软件应用程序。

以下是 Winget 的一些核心功能和用途:

  • Winget 提供了一种使用命令行安装、更新、卸载和配置 Windows 应用程序的简单方法。
  • 它使用命令行界面,因此无需访问Microsoft商店或第三方应用程序网站来安装软件。
  • Winget 使用包含软件元数据的软件包存储库,确保安装和配置正确版本的应用程序。
  • 由于 Winget 是一个命令行工具,因此可以编写脚本并将其集成到更大的自动化工作流中,这对系统管理员和 DevOps 非常有益。
  • Winget 是一个开源工具,不仅可以处理 EXE,还可以处理 MSI 和 MSIX 包。其代码可在 Git Hub 上找到。
  • 使用它,Windows 用户将获得类似于 Linux 发行版中的包管理器或 macOS 上的 Homebrew 的体验。
  • 它简化了在 Windows 上管理软件的过程,尤其是批量或跨多个软件。

先决条件

  • 要遵循本教程,我们需要 Windows Server 2022 或 2019。我们还没有在其他旧版本上尝试过,但你可以。
  • 依赖项 – Microsoft.ui.xaml.2.7.x 和 Microsoft.VCLibs.x64
  • 对服务器的管理员访问权限。
  • 上网

如果我们尝试使用 PowerShell 或命令提示符使用它,则在 Windows 服务器上安装 Winget 时,我们会遇到以下错误。

winget : The term 'winget' is not recognized as the name of a cmdlet, function, script file, or operable program.Check the spelling of the name, or if a path was included, verify that the path is correct and try again.At line:1 char:1+ winget+ ~~~~~~+ CategoryInfo : ObjectNotFound: (winget:String) [], CommandNotFoundException+ FullyQualifiedErrorId : CommandNotFoundException

或者,如果其许可证未添加到系统中。

Program 'winget.exe' failed to run: No applicable app licenses foundAt line:1 char:1

安装 Microsoft UI XAML 和 VCLibs

由于 Winget 不是 Windows Server 2022 的一部分,并且默认情况下不附带它,因此我们需要手动安装 Winget 所需的依赖项。让我们下载 Microsoft UI XAML,然后下载 Microsoft VCLibs。

Microsoft.UI.Xaml

Microsoft.UI.Xaml 引用 Windows UI 库 (WinUI) 的 NuGet 包。它提供了一套 UI 控件和开发人员用于创建新式 Windows 应用程序的其他用户界面元素。要获取 Microsoft UI XAML 2.7 版本,请访问此 Nuget 网页并单击下载链接。要获得想法,请参阅给定的屏幕截图。

Download-Microsoft-UI-XML-1024x526-1

在 Windows 2022 服务器上下载 Microsoft UI XAML 后,选择下载的文件并按 F2 键或右键单击以选择“重命名”以编辑其扩展名。

Rename-file-on-Windows-server

将 nupkg 扩展名更改为 zip。完成后,我们需要右键单击文件以将其解压缩

Rename-Nupkg-to-ZIP

现在,按 Shift 右键单击已提取文件的空白区域上的任意位置,以选择“在此处打开 PowerShell Windows”选项。

Open-PowerShell-inside-the-folder-edited

使用 PowerShell 中的 Add-Appxpackages 命令在 Windows 服务器上安装 UI XML。命令如下:

切换到解压的文件夹:

cd .\microsoft.ui.xaml.2.7.3\

安装 UI XML 的 APPX 包

Add-AppxPackage -Path .\tools\AppX\x64\Release\Microsoft.UI.Xaml.2.7.3.appx
Install-the-UI-XMLs-APPX-package-1024x391-1

Microsoft.VCLibs Appx

Microsoft.VCLibs 代表 Microsoft Visual C++ 库。这些库对于在 Windows 上运行使用 Visual C++ 框架开发的应用程序是必需的。要下载它,请访问 Microsoft 网页并根据您的系统架构下载它,例如,我们使用的是 Intel 64 位,因此我们下载了 x64 版本。

Microsoft.VCLibs-download-1024x815-1

现在,再次打开保存 Microsoft VCLibs Appx 文件的 PowerShell,并将其添加到您的系统中。

Add-Microsoft-VCLibs-package-1024x441-1

下载 Microsoft.DesktopAppInstaller 和

一旦我们在 Windows Server 2022 上满足了 Winget 的要求,接下来就是在我们的系统上下载启用应用程序安装的 Msixbundle – Winget。为此,请访问Winget的GitHub页面并下载两个文件,一个是Microsoft桌面应用程序安装程序,另一个是可用的许可证文件

Download-MSI-Winget-Bundle-form-GitHub-1024x662-1

在 Windows 2022 服务器上安装 Winget

在系统上拥有这两个文件后,再次在保存文件的目录中打开 PowerShell

运行给定的命令以安装已下载的 MSIXBundle

语法:

Add-AppxPackage 包名称

注意: 根据我们下载的文件名,我们在命令中使用了它。如果您的情况不同,请相应地使用它。

Add-AppxPackage .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle

安装桌面安装程序后,还要将下载的许可证文件分配给它:

语法

Add-AppxProvisionedPackage -Online –Package name-of-the-package–licensePath name-of-the-Licensefile

本例中使用的命令:

Add-AppxProvisionedPackage -Online -Package .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle -LicensePath .\24146eb205d040e69ef2d92d7034d97f_License1.xml
Install-Microsoft-Desktop-Installer-app-for-Winget-1024x513-1

在 Windows 服务器上验证 Winget

成功完成上述所有步骤后,关闭所有当前 PowerShell 窗口,然后使用管理员权限再次打开 PowerShell。

键入 – winget,您将看到所有可用于它的选项:

Winget-command-on-Windows-2022-server-1024x732-1

开始使用 Winget:

在 Windows 2022 服务器上安装 Winget 后,我们可以借助命令提示符或 Powershell 开始安装、更新和管理软件包。例如,要安装 Git,您需要运行:

winget install Git.Git

若要搜索包,请使用:

winget search package-name

使用 Winget 更新和卸载:

Winget 还使更新和卸载包变得容易。有关更新:

winget upgrade package-name

对于卸载:

winget uninstall package-name

未经允许不得转载:表盘吧 » 如何在 Windows 2022 Server 中安装 Winget 包管理器