与Artifactory一起使用OneGet
Artifactory,OneGet,NuGet、Chocolatey和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.org”。从chocolatey.org下载的任何物品都将缓存在本地的“chocolate- gallery”中,无需通过互联网就可以在下次下载时使用。
第二步,执行Powershell 5.0的安装正如这篇最近的文章所描述的。打开管理员命令窗口并启动Powershell。
第三步,需要设置和使用OneGet正如这篇最近的文章所描述的。按照说明进行设置OneGet.
使用OneGet
现在,OneGet是设置,使用OneGet在此机器上安装NuGet包。从Powershell命令行发出以下命令OneGet命令:
Find-Package - nameNuGet.vs|安装包冗长
NuGet安装后,列表使用此命令获取NuGet包可用的“源”。
把- - - - - -PackageSource
现在只有一个巧克力(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提供者巧克力色- namelocalchoco位置https://tfs:8081 /artifactory/api/nuget/ chocolatey-gallery
在设置Artifactory之后,确保Artifactory被用来代理巧克力画廊。我们可以通过移除原始的NuGet库源使用OneGet命令如下:
删除- - - - - -packagesource- nameNuGet
这将删除“NuGet巧克力(NuGet)包装的来源。现在运行get-packagesourceCommand将只列出两个来源,”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的chocolate -gallery中。下次任何开发人员需要安装“消包,下载将发生在Artifactory而不是chocolatey.org画廊。
现在我们可以使用Powershell了OneGet管理我们的NuGet巧克力色的包:
把- - - - - -PackageSourceGet-Packages Find-Package添加,PackageSource删除- - - - - -PackageSource安装包Uninstall-Package
例如:
找到包
注意这两个不同的来源。Artifactory将只列出找到的前20个包。
找到包sqlserver
我们还可以使用NuGet命令访问相同的文件。
NuGet列表- s https://tfs: 8081 / artifactory / api / nuget /巧克力色
NuGet列表sqlserver- s https://tfs: 8081 / artifactory / api / nuget /巧克力色
巧克力色的安装
一旦包被安装使用OneGet,它的行为就像一个普通的Chocolatey安装。Nuget包被安装到$Chocolateylib目录中。打包的缓存在$AppDataLocalNuGetCache下。如果你没有连接对于internet,以前安装的包可以从这些位置中的任何一个检索到。
Chocolatey libs文件夹是每个开发人员机器的已安装包列表。这对于帮助跟踪多台机器上的依赖关系差异或构建框非常重要。
巧克力(NuGet)包二进制文件可以也可以不存储在NuGet包。这些文件可以存储在面向公共的本地资源或私有存储库中,例如2022世界杯阿根廷预选赛赛程BinTray.使用存储在Chocolatey (NuGet)包中的Powershell脚本访问二进制文件。
NuGetArtifactory中的包装信息
除了对NuGet包进行本地控制的好处之外,Artifactory还提供了关于所存储的每个包的有价值的信息,包括许可证每个包的信息、所有者信息、作者信息、版本和日期。
标准属性作为元数据存储在Artifactory中。此外,可以轻松地创建和存储任何自定义属性。
对于存储在Artifactory中的每个工件,将计算sha1和md5。它们对于每个工件都是惟一的,可以在搜索中使用。
一个Artifactory存储库NuGet包将有助于减少网络流量,提供对Chocolatey.org的可靠访问,提供包的批准版本,并为您的二进制依赖提供安全和访问控制。
本地专有NuGet包和其他非NuGet包格式也可以存储在同一个Artifactory服务器上。
