云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

Artifactory为RubyGems存储库提供全面支持,包括:

  • 支持RubyGems API的本地存储库
  • 缓存和代理远程RubyGems存储库
  • 聚合多个本地和远程存储库的虚拟存储库,包括gems和规范的索引
  • 支持常见的Ruby工具,如gem和bundler
  • 支持本地和远程存储库的bundle Compact索引,为您提供与已安装的项目Ruby版本兼容的包的最新版本。

有关配置Artifactory以使用RubyGems的一般信息,请参考配置Artifactory

页面内容



常规配置

所有RubyGems存储库必须在路径中添加api/gems前缀

当使用RubyGems命令行通过Artifactory访问存储库时,存储库URL必须加上前缀api /宝石在路上。

所有RubyGems命令,包括宝石来源而且宝石推必须在存储库路径前面加上api /宝石

例如,如果你单独使用Artifactory或作为本地服务,你可以使用下面的URL访问你的RubyGems存储库:

http://localhost:8081/artifactory/api /珠宝/<库关键>

或者,如果您正在使用Artifactory Cloud, URL将是:

https:// < server name > .jfrog.io /artifactory/api /珠宝/<库关键>


局部存储库

本地RubyGems存储库是物理的、本地管理的存储库,您可以在其中部署和管理您的内部Gems。

要创建本地RubyGems存储库,请在政府模块,在存储库|存储库|本地,点击新建本地存储库并设置宝石成为包装类型。


你可以设置一个本地RubyGems存储库,如下所示:

您需要通过修改您的~ / .gemrc文件或使用宝石来源命令,如下所示。您可以通过在Tree Browser中选择存储库并单击来提取源URL给我介绍。

注意,这里有两个来源。首先是远程代理,然后是本地代理。这将有效地允许您以指定的顺序从它们中检索Gems。

所有RubyGems存储库必须在路径中添加api/gems前缀

当使用RubyGems命令行通过Artifactory访问存储库时,必须在存储库URL前加上api /宝石在路上。

宝石来源-a http://localhost:8081/artifactory/api/gems/my-gems-local/

默认的文件

在创建Local RubyGems存储库时,Artifactory会用以下文件来填充它,这些文件是为存储库建立索引所必需的:

  • rubygems-update - * .gem(根据宝石存储库的文件夹)
  • 快速/元帅。*
  • latest_specs . * . gz
  • prerelease_specs . * . gz
  • * . gz和规格。

本地RubyGems存储库显示在应用程序模块|Artifactory|工件

使用

首先,设置适当的凭证宝石工具中包含API键~ / .gem /凭证文件或发出这个命令:

设置凭证
Curl http://localhost:8081/artifactory/api/gems//api/v1/api_key. Curl http://localhost:8081/artifactory/api/gems//api/v1/api_key. CurlYaml -u admin:密码> ~/.gem/credentials

在Linux上运行

您可能需要将凭据文件的权限更改为600 (chmod 600)

在Windows上运行

凭据文件位于% USERPROFILE % / .gem /凭证

您还需要将API密钥编码设置为“ASCII”。例如:

旋度http://localhost: 8081 / artifactory / api /珠宝/ <库关键> / api / v1 / api_key。yaml |输出文件~/。宝石/凭证-Encoding "ASCII"

在JFrog Artifactory对面配置RubyGems客户端时,如果要使用电子邮件地址作为用户名,请替换@符号在地址中使用HTTP编码% 40例如:公关% 40 m.si-fil.com.这将防止您收到以下消息:错误:当执行gem…(URI:: InvalidURIError)

API密钥

您可以手动修改凭据文件并添加不同的API密钥。您可以稍后使用宝石按-k键以选择相关的API密钥。

为了Gems到本地存储库后,可以设置全局变量RUBYGEMS_HOST美元指向本地存储库,如下所示:

设置RUBYGEMS_HOST
export RUBYGEMS_HOST=http://localhost:8081/artifactory/api/gems/<存储库密钥>

要获得此值,请在应用程序模块|Artifactory|工件|Gems-local而且点击给我介绍。

或者你也可以使用宝石推命令——主机,可选地,——关键来指定相关的API键。

确保你熟悉你的有效来源和他们的顺序在指定的~ / .gemrc文件。

另外,确保你熟悉你的全局RUBYGEMS_HOST美元变量宝石推命令或使用推动——主机选择。

第一次创建本地存储库时,将使用rubygems-update - * .gem默认情况下。要禁用此行为,必须更改系统属性包括:
artifactory.gems.gemsAfterRepoInitHack = false

确保部署到“gems”文件夹

在将Gems部署到存储库时,需要将它们放在Gems文件夹中,以便Artifactory在索引计算中包含它们。


远程存储库

远程RubyGems存储库作为一个缓存代理,用于在远程URL(例如http://rubygems.org

一旦请求,工件(Gems)将根据需要缓存。然后可以删除它们,但不能手动将任何东西部署到远程存储库中。

要创建远程RubyGems存储库,请执行以下步骤:

  1. 政府模块,在存储库|存储库|远程,点击新的远程存储库并设置宝石成为包装类型。
  2. 设置库的关键,并指定URL到远程存储库。下面的示例参考rubygems.org

使用

为了允许与宝石命令行工具,你必须添加相关的源URL到你的RubyGems配置。
  1. 在Application模块| Artifactory | Artifacts Tree Browser中,选择新创建的存储库并单击给我介绍
  2. 类复制源URLRubyGems来源部分。
  3. 通过修改您的~ / .gemrc文件或使用宝石来源命令如下:

    所有RubyGems存储库必须在路径中添加api/gems前缀

    当使用RubyGems命令行通过Artifactory访问存储库时,存储库URL必须加上前缀api /宝石在路上。

    宝石来源-a http://localhost:8081/artifactory/api/gems/rubygems/

你可以使用额外的Gem命令

您可以通过修改您的~ / .gemrc手动或运行文件宝石来源-r
你也可以跑Gem来源——列表要知道你的有效来源是什么以及它们的顺序。

克服未经授权的状态失败

一些gem/bundler命令可能会在未授权(401)状态下失败。在某些情况下,这些可以通过使用一个以下选项:

  • 通过勾选启用“匿名用户”允许匿名访问安全总体配置请参见管理用户。
  • 创建一个专门的允许目标仅允许对远程存储库进行匿名访问。
  • 使用内嵌凭证的源URL,例如:宝石来源-一个http: / /用户password@host/ . .


虚拟存储库

虚拟RubyGems存储库(或“存储库组”)可以聚合多个本地和远程RubyGems存储库,将它们无缝地暴露在一个URL下。

存储库是虚拟的,因为您可以从中解析和检索工件,但不能向其中部署任何东西。更多信息请参考虚拟存储库

设置虚拟存储库的过程与设置本地或远程存储库非常相似,但是作为最后一步,您需要选择将包含在正在创建的虚拟存储库中的存储库。

RubyGems虚拟存储库

使用

使用虚拟RubyGems存储库,您可以聚合本地和远程存储库。

您需要设置正确的存储库源URL,方法与使用对于本地RubyGems存储库,只需使用适当的存储库密钥,如下所示:

来源:http://localhost: 8081 / artifactory / api /珠宝/ <库关键> /

目标:http://localhost: 8081/ / artifactory / api /宝石<库关键>结尾没有斜杠!)


使用REST API

REST API提供了通过存储库键使用以下URL访问Gems附加组件:

http://localhost:8081/artifactory/api /宝石/ <库关键> /


除了基本的二进制存储库操作,如下载、部署、删除等RubyGems.org支持API Gem命令:

Gem命令
Curl语法示例
讲话
信息 旋度http://localhost:8081/artifactory/api /宝石/ <代表ository关键>/ api / v1 /珠宝/ my_gem。(json xml | | yaml) 可选JSON / XML / YAML(默认:JSON)
搜索 旋度http://localhost:8081/artifactory/api /宝石/ <库关键> / api / v1 /搜索。(json xml | | yaml) ?查询=[查询 将搜索宝石与名称包含查询
依赖关系 旋度http://localhost:8081/artifactory/api /宝石/ <库关键> / api / v1 /依赖性?宝石= (gem1,……) 的值使用一个csv格式的gem名称宝石
猛地一拉

curl -X DELETEhttp://localhost:8081/artifactory/api /宝石/ <库关键> /api / v1 /猛拉

- d ' gem_name =gem_name' -d 'version=0.0.1' -d '平台=ruby

删除来自存储库的特定gem文件


索引是由Artifactory在后台自动完成的,但是如果您仍然需要重新创建或更新spec索引文件,以下REST API命令也可用:

其他命令
Curl语法示例
讲话
重建索引 curl -X POSThttp://localhost:8081/artifactory/api /宝石/ <库关键> /重建索引

重新创建所有规格索引文件。

更新索引 curl -X POSThttp://localhost:8081/artifactory/api /宝石/ <库关键> / updateIndex 如果需要,更新所有规格索引文件。

查看RubyGems工件信息

如果您在Tree Browser中选择RubyGems工件,您可以选择RubyGems选项卡查看所选工件的详细信息。


检索与Ruby版本兼容的最新RubyGems包

Bundler Compact Index特性允许您检索与已安装的Ruby版本兼容的最新RubyGems版本,该版本应用于本地、远程和虚拟存储库。

要应用此特性,请设置artifactory.gems.compact.index.enabled = true的价值artifactory.system.properties文件。


观看录像

  • 没有标签
版权所有©2022 JFrog Ltd.