我正在为我的应用程序研究一组宝石。
当安装我自己的任何宝石时,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
答案 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