Nexus提供巧克力包

问题描述:

不是来自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将帮助其他人在同一条船上。 –

这里是你如何做到这一点:

  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