Ruby gems存储库

ist*_*sci 6 ruby gem rubygems repository

我正在尝试在我们的一个本地服务器上设置gem存储库.以下是我正在运行的步骤,我已经从几个指南中了解到了这些步骤.

1)我创建BASEDIR文件夹/ var/www/html/gems
2)sudo cp -r /usr/lib/ruby/gems/1.8/gems/someGem/var/www/html/gems
3)sudo gem generate_index -d在/ var/www/html等/宝石

但是,当我运行它时,我得到以下输出:

Loading 0 gems from /var/www/html/gems

Loaded all gems
Generating quick index gemspecs for 0 gems

Complete
Generating specs index
Generating latest specs index
Generating quick index
Generating latest index
Generating Marshal master index
Generating YAML master index for 0 gems (this may take a while)

Complete
Compressing indicies
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它没有加载宝石.我确实看到一个指南,建议将BASEDIR作为/ var/www/html/ruby​​gems /,然后在BASEDIR中进一步创建一个gems /目录,并将所需的gem复制到这个gems /目录.我也尝试了这个,但得到了相同的结果.

我们的服务器必须具有相同配置的不幸运气在此提到的职位(RHEL5,红宝石1.8.5,/ var和在不同的分区/ tmp目录),但我们升格为建议红宝石1.8.6,但它仍然赢得了"加载宝石.

有人遇到过这个吗?找到了解决方案?

ist*_*sci 5

我偶然发现了我的旧职位并意识到我实际上已经解决了这个问题,所以我想我会发布我的答案.

问题是我的第2步:复制宝石行动.

在OP中,我曾尝试过

2)sudo cp -r /usr/lib/ruby/gems/1.8/gems/someGem/var/www/html/gems

我发现我需要复制实际的.gem文件,它们位于.../gems/1.8/gems/cache .所以我真正需要为第2步做的是:

sudo cp .../gems/1.8/gems/cache/*.gem /var/www/html/gems
Run Code Online (Sandbox Code Playgroud)

在正确复制gem之后,索引按预期工作,然后我们可以通过将它作为gem源添加到各种机器上来使用我们的服务器.安装我们的自定义宝石然后顺利工作.


zap*_*app 5

我们内部使用Artifactory来管理我们的内部rubygems - 其中一些是专有的,一些是公开发布的.我们可以强制执行不同组之间的安全性(dev,qa - 预发布,发布,...)

此外,rubygems.org在本地代理和缓存,这有助于我们获得更好的性能并避免远程停机.

最终,开发人员使用单个源URL,透明地聚合远程和本地存储库.