2016-06-14 87 views
17

我知道有很多PowerShell擴展的軟件包源代碼。我在尋找一個全面的答案,如何:Chocolatey,OneGet,PsGet,NuGet,...有什麼區別?

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

所有這些融合成一張大圖。請表示停產或包含版本。

根據這篇文章:Difference between Chocolatey and NuGet NuGet僅集成在VisualStudio中,適用於.NET庫。

+0

巧克力是基於nuget協議和包結構構建的。 – antlersoft

+2

我知道這個問題有點寬泛,但我想很多其他人可能會問自己:「這些工具和畫廊怎麼一起玩?」 – Paebbels

回答

16

OneGet已重命名爲包管理。它的核心是爲您提供發現和安裝/卸載各種軟件包。 OneGet通常被稱爲「包裝經理經理」。

OneGet是WMF 5安裝的一部分。把這看作大局的「中心概念」。現在讓我們來談談軟件包。

包通過包提供程序提取。例如。 PowerShellGet是OneGet的一個軟件包提供商。 Powershell畫廊是PowershellGet(PSGet)的一個包裝源。一個提供者可以有多個來源來搜索它的包。

E.g爲nuget-package提供者;您可以輕鬆地將資源添加到公開的nuget庫並註冊您自己的例如myget源,因此可以在搜索包時使用它。

巧克力只是包供應商的另一個例子。早些時候,它必須安裝,並且是一個獨立的模塊,具有自己的邏輯。新的Chocolatey提供商符合安裝/管理軟件包的新框架。

因此,在更概念層面上;包提供者本身包含有關如何安裝和搜索源的信息(可以爲每個提供者註冊/註銷源);而OneGet(包裹管理,包裹經理經理)在上述層面工作,管理包裹提供者,併爲您提供全部接口。

OneGet把它粘在一起;而提供者本身知道如何處理基於註冊源的包。

希望這可以從概念層面解釋它。

也看到這個漂亮的博文在這裏解釋更詳細的幾件事情:https://blogs.technet.microsoft.com/packagemanagement/2015/05/05/10-things-about-oneget-that-are-completely-different-than-you-think/

如果你想玩弄成套供應商及來源:

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 it's provider name) 
Register-PackageSource # -Register new package source for a provider) 

這些只是一些例子。通過調用以下命令獲取更廣泛的列表:

Get-Command -Module PackageManagement 
+3

「OneGet已更名爲包管理。」不完全如此,PackageManager是微軟的名字,而底層的開源項目仍然被命名爲OneGet。 –