Chocolatey,OneGet,PsGet,NuGet,......有什么区别?

Pae*_*els 29 powershell package-managers

我知道PowerShell扩展有很多包源.我正在寻求一个全面的答案,如何:

  • 巧克力味
  • 的NuGet
  • PsGet
  • PowerShellGallery
  • OneGet
  • MyGet
  • ProGet
  • ...

所有这些都融合在一起.请表示已停产或包含的版本.

根据这篇文章:Chocolatey和NuGet之间的区别 NuGet只集成在VisualStudio中,适用于.NET库.

Har*_* F. 25

OneGet已重命名为包管理.其核心为您提供各种软件包的发现和安装/卸载.OneGet通常被称为"包管理器经理".

OneGet是WMF 5安装的一部分.将其视为大局中的"核心概念".现在让我们谈谈包装.

包通过包提供程序获取.例如,PowerShellGet是OneGet的一个包提供程序.Powershell gallery是PowershellGet(PSGet)的软件包源代码.提供商可以拥有多个来源,可以搜索其包.

例如,nuget-package提供商; 您可以轻松地将源添加到公共nuget库并注册您自己的例如myget源,以便在搜索包时使用它.

Chocolatey只是包提供者的另一个例子.之前它必须安装,并且是一个独立的模块,有自己的逻辑.新的Chocolatey提供程序符合安装/管理软件包的新框架.

所以在更概念的层面上; 包提供者本身包含有关如何安装和搜索其来源的信息(可以为每个提供者注册/取消注册来源); 而OneGet(包管理,包管理器经理)在上面的层面工作,管理包提供商并为您提供这一切.

OneGet将它们粘合在一起; 而提供商本身知道如何根据其注册的来源处理包.

希望这能在概念层面上解释它.

另请参阅这篇精彩的博客文章,在这里详细解释一些事情: 关于OneGet的10件事情与您的想法完全不同.

如果你想玩包提供者和来源:

 Get-PackageProvider # -Shows package providers installed on your machine)
 Find-PackageProvider # -Find online package providers you can pull down and install)
 Get-PackageSource # -List all package sources, with its provider name)
 Register-PackageSource # -Register new package source for a provider)
Run Code Online (Sandbox Code Playgroud)

这只是一些例子.通过调用以下命令获取更广泛的列表:

Get-Command -Module PackageManagement  
Run Code Online (Sandbox Code Playgroud)

  • "OneGet已经重命名为包管理." 不完全正确,PackageManager是微软的名称,而底层的开源项目仍然被命名为OneGet. (7认同)