2017-08-24 106 views
2

不是來自NuGet背景,我不明白如何設置Nexus來提供巧克力包。Nexus提供巧克力包

+0

哪部分你不明白?你能具體嗎? –

+1

我不明白'簡單服務器'是什麼意思,或者如何代理chocolatey.org。我試圖使用https://example.com/nexus/content/groups/choco-all/ for --source,這當然不起作用。 –

+1

也許鏈接這個答案或將其複製到https://chocolatey.org/docs/how-to-host-feed#commercial-package-repositories將幫助其他人在同一條船上。 –

回答

2

這裏是你如何做到這一點:

  1. 創建的NuGet代理存儲庫點https://chocolatey.org/api/v2/。這將允許您緩存來自chocolatey.org的軟件包,如果在部署過程中出現故障,它可以派上用場。
  2. 創建一個NuGet託管的存儲庫。這是您將發佈您的私人包到的地方。
  3. 創建包含上述存儲庫的組存儲庫。這就是你將在安裝包時設置--source標誌。

上面創建的託管庫中的NuGet選項卡將具有包源和個人API密鑰。

因此,如果託管回購有:

包源= 「https://example.com/nexus/service/local/nuget/choco-releases/」 個人API密鑰= 「d8471cc1-d350-3e45-a0c2-95d0b938e1d9」

打包併發布你的私人mypackage包呼叫看起來像這樣:

choco pack 
choco push --source "'https://example.com/nexus/service/local/nuget/choco-releases/'" -k="'d8471cc1-d350-3e45-a0c2-95d0b938e1d9'" 

要從私人和公共來源安裝軟件包,請使用組資源庫作爲源。上面創建的羣組回購下的NuGet選項卡將使用套餐來源。

所以,如果組回購有:

包源=「https://example.com/nexus/service/local/nuget/choco-all/

接着,電話安裝這兩個專用和公開可用的軟件包會是這個樣子:

choco install jdk8 mypackage --source "'https://example.com/nexus/service/local/nuget/choco-all/'" 

在哪裏jdk8軟件包不在私人回購中,因此Nexus會將其從chocolatey.org中取出,將其緩存在代理回購中,然後將其發送到調用choco install的地方。

+1

請記住,由於分配權限和公共存儲庫,社區存儲庫上的大多數軟件包(公共可用)必須在運行時下載這些不可再分發的二進制文件。將軟件包本地緩存到代理存儲庫不足以使它們脫機。這就是爲什麼我們有一個名爲Package Internalizer的工具,它可以使這些軟件包100%離線和可靠。 https://chocolatey.org/docs/community-packages-disclaimer是一個很好的閱讀,可以解釋這一點。另請參閱https://chocolatey.org/docs/features-automatically-recompile-packages。 – ferventcoder