安装自制宝石时避免http检查

时间:2010-09-21 11:34:43

标签: ruby rubygems gem

我正在为我的应用程序研究一组宝石。

当安装我自己的任何宝石时,gem程序将检查rubugems规范(可能是依赖项)。使用详细标记,我可以看到如下消息:

GET http://rubygems.org/latest_specs.4.8.gz
302 Found
GET http://production.s3.rubygems.org/latest_specs.4.8.gz
200 OK
GET http://rubygems.org/specs.4.8.gz

问题在于我正在研究这些宝石,而且我每天打包/重新安装很多次,安装过程很长。

由于我很确定所有外部gem依赖关系都得到满足,有没有办法让gem 不检查来自rubygems.org的依赖关系,并避免,可能会减慢http流量?

问候,

_dl

2 个答案:

答案 0 :(得分:1)

如果您希望将rubygems.org之类的内容作为构建的一部分进行访问,您可以使用GemInABox等内部gemserver来托管您将在组织中使用的gem。

然后确保将--clear-sources和--source选项都传递给gem。

例如:

gem install bundler --clear-sources --source http://your.corporate.gemserver.here.com 

这将允许您保持CI构建的连接问题和网络延迟,从而消除构建差异的另一个来源。

以前是gem的--source选项被用作gem查找的唯一来源。从2009年的某个地方开始,它改为将作为选项提供的源与为gem定义的默认源组合,其中一个是http://rubygems.org

可悲的是,这意味着如果你在一台机器中运行gem,这台机器被封闭,甚至无法访问http代理,你会发现gem install因网络问题而失败,因为它会想家并尝试查找{ {3}}即使你告诉它不要去看那里。

Rubygems手册略微落后于曲线,而--clear-source选项在手册中没有记载。只有查看源代码才能看到它。我希望这些能够被其他人用来保存它们。

干杯 斯图尔特

答案 1 :(得分:0)

您是否正在使用珠宝商来制作宝石?

您可以使用rake install安装gem