使用OneGet和Artifactory
Artifactory,OneGet,NuGetChocolatey和Powershell
安装及安装
最近有一个热烈的讨论OneGet微软为Powershell推出的新下载管理器。与OneGet, Windows现在有一个一流的部署管理器,非常类似于*inx人多年来拥有的Apt-Get下载管理器。
OneGet是命令行工具它在Powershell命令框中运行(目前仅适用于Win 8.1和2012 Server R2)。OneGet使用NuGet包装格式对象中存储的包巧克力色画廊(其他远程源和格式将在未来添加)。已经有不少非常好的了OneGet博客已经写好了。快速搜索“OneGetPowershell会找到这些。
这篇文章的目的是描述如何使用Artifactory作为代理之间OneGet和巧克力画廊。我们为什么需要代理人?想象一下网络连接不可用。想象一下,无法控制实际下载的版本和包。想象一下托管本地构建的包,供开发人员与其他开发人员共享。想象一下,所有二进制文件都只有一个源代码,即使它们不是NuGet包。
第一步,我们需要的是NuGet的Artifactory下载和设置包。这已经在上面的链接中描述过了。后Artifactory已下载而且设置,创建以下自定义。首先,创建一个遥控器回购“巧克力厨房”,决心https://chocolatey.org来自互联网。第二,创建虚拟回购命名为“巧克力”,解决到远程回购“chocolatey-gallery”。这允许您搜索本地虚拟回购“chocolatey.org”中存储的任何物品均为“chocolatey”。从chocolatey.org下载的任何物品都将被缓存在本地的“chocolatey.gallery”中,无需通过互联网就可用于下一次下载请求。
第二步,执行Powershell 5.0的设置正如最近的一篇文章所描述的。打开管理员命令窗口,启动Powershell。
第三步,需要设置和使用OneGet正如最近的一篇文章所描述的。按照说明进行安装OneGet.
使用OneGet
现在,OneGet是设置,使用OneGet在此机器上安装NuGet包。从Powershell命令行发出以下命令OneGet命令:
Find-Package - nameNuGet.vs|安装包-详细
安装NuGet后,列表使用此命令获取NuGet包可用的“源”。
把- - - - - -PackageSource
现在只有一个Chocolatey (NuGet)源可用,名称为“NuGet”。我们想在Artifactory服务器中添加两个新的Chocolatey (NuGet)源。第一个,将允许访问在本地构建并存储为的工件NuGet包(CI构建)第二个,可以在Chocolatey.org网站上买到巧克力。
让我们用下面的例子OneGet命令:
添加- - - - - -packagesource-Provider Chocolatey -Name JFrog -Locationhttps://tfs:8081/artifactory/api/nuget/nuget-staging-local
添加- - - - - -packagesource-Provider Chocolatey -Namelocalchoco位置https://tfs:8081 /artifactory/api/nuget/ chocolatey-gallery
建立Artifactory后,确保Artifactory是用来代理巧克力画廊。我们可以通过移除原始的"NuGet的图库源OneGet命令如下:
删除- - - - - -packagesource- nameNuGet
这将删除“NuGet巧克力(NuGet)包装的来源。现在运行get-packagesource指挥部只会列出两个来源。”jfrog"和"localchoco,在Names头文件中。两者都位于Artifactory服务器中。“localchoco”packagesource将代理https://Chocolatey.org而“jfrog”packagesource将代理Artifactory的本地发布文件夹https://tfs:8081/artifactory/api/nuget/nuget-release-local.
把- - - - - -PackageSource
的OneGet命令“find-package”将只列出在存储库中找到的前20个包。注意Source标题列列出了jfrog"和"localchoco作为消息来源。Jfrog源代码将包含在本地构建和存储的包,而localchocoSource将列出在chocolatey.org在线存储库中找到的包。
Find-Package
要从chocolatey.org下载包,使用“安装包packagename”命令。这将拉出并安装包和本地机器的任何依赖项。由于我们使用Artifactory作为代理缓存,Artifactory将缓存并存储文件。下面是一个安装示例为的消使用一个依赖于StrawberryPerl包的包。
安装包消
随着消和StrawberryPerl包被安装在本地,这些包被缓存在Artifactory的巧克力画廊。下次任何开发人员需要安装“消包,下载将发生在Artifactory而不是巧克力画廊。
现在我们可以使用Powershell了OneGet命令来管理NuGetChocolatey的包装:
把- - - - - -PackageSource获取包查找包添加-PackageSource删除- - - - - -PackageSource安装包Uninstall-Package
例如:
找到包
注意这两个不同的来源。Artifactory将只列出找到的前20个包。
找到包sqlserver
我们还可以使用NuGet命令访问相同的文件。
NuGetList -s https://tfs:8081/artifactory/api/nuget/chocolatey
NuGet列表sqlserver- s https://tfs: 8081 / artifactory / api / nuget /巧克力色
巧克力色的安装
一旦安装包使用OneGet,它就像一个普通的Chocolatey装置。Nuget包安装在$Chocolateylib目录下。打包的缓存在$AppDataLocalNuGetCache下。如果你没有连接对于internet,以前安装的包可以从这些位置中的任何一个检索。
Chocolatey libs文件夹是每个开发人员机器上安装的包的列表。这对于帮助跟踪多台机器或构建盒上的依赖关系差异非常重要。
Chocolatey (NuGet)包二进制文件可以也可以不存储在NuGet包。这些文件可以存储在公共的本地资源或私有存储库,如2022世界杯阿根廷预选赛赛程BinTray.使用存储在Chocolatey (NuGet)包中的Powershell脚本访问二进制文件。
NuGet包装信息在Artifactory
除了对NuGet包进行本地控制的好处之外,Artifactory还提供了关于存储的每个包的有价值的信息,包括许可证每个包的信息、所有者信息、作者信息、版本和日期。
标准属性作为元数据存储在Artifactory中。此外,可以轻松地创建和存储任何自定义属性。
对于存储在Artifactory中的每个工件,将计算一个sha1和md5。这些对每个工件都是唯一的,可以用于搜索。
您的Artifactory存储库NuGet包将有助于减少网络流量,提供对Chocolatey.org的可靠访问,提供软件包的批准版本,并为您的二进制依赖项提供安全和访问控制。
本地专有的NuGet包和其他非NuGet包格式也可以存储在同一个Artifactory服务器上。
