gpt4 book ai didi

ruby - 安装自制 gem 时避免 http 检查

转载 作者:太空宇宙 更新时间:2023-11-03 16:38:27 25 4
gpt4 key购买 nike

我正在为我的应用程序开发一组 gem。

当安装我自己的任何 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

问题是我在做那些gems,我每天打包/重新安装很多次,安装过程很长。

因为我很确定所有外部 gem 依赖项都得到满足,有没有办法让 gem 不检查来自 ruby​​gems.org 的依赖项,并避免可能减慢 http 流量?

问候,

_dl

最佳答案

如果您想阻止像 ruby​​gems.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 年的某个地方开始,它更改为将作为选项提供的源与为 gems 定义的默认源相结合,其中之一是 http://rubygems.org

遗憾的是,这意味着如果您在被隔离的机器上运行 gem,甚至无法访问 http 代理,您会发现 gem 安装失败并出现网络问题,因为它会想家并尝试查找 http://rubygems.org即使你告诉它不要看那里。

Rubygems 手册有点落后,手册中未记录 --clear-source 选项。只有查看源代码才能看到。我希望其他人可以选择并使用它来节省他们一些时间。

干杯斯图尔特

关于ruby - 安装自制 gem 时避免 http 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3759853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com