有没有一种方法可以设置一个最小的RubyGems镜像(只包含最新版本)?

9

我希望为一些无法连接互联网的工作服务器建立一个RubyGems镜像,所以我开始像其他人一样进行了以下步骤:

 $ cat gemmirror.config 
 ---
 - from: http://gems.rubyforge.org
 to: /data/rubygems/mirror

 $ gem mirror --config-file=gemmirror.config

镜像开始同步。好的。但等等,它下载了http://gems.rubyforge.org的全部内容!我的意思是每个ruby gem的所有现有版本。哇!几个小时后,我仍在下载以字母“L”开头的gems……
更不用说镜像需要占用的磁盘空间了。
现在我的问题是:是否有一种方式可以设置一个“mini” rubygems服务器,就像CPAN::Mini为Perl所允许的那样:这样一个镜像只包含每个 gem 的最新版本。我猜99.9%的情况下人们都只需要最新版本(至少对于我来说足够好)。
我已经搜索了很多,可惜找不到任何相关参考。
如果有人能指点我该如何做到这一点,我将非常感激。
谢谢!
1个回答

1

这并不是你所要求的,但也许解决这个问题的一种方法是设置一个缓存 HTTP 代理,它将在请求时缓存 gem,这样后续的请求就会命中缓存。

squid 这样的东西应该可以胜任。

然后每个客户端都配置 gem 代理 使用 squid,这样所有的 gem 下载都通过它进行,希望大部分时间都在缓存中...

虽然如果你使用 bundler,似乎 与代理设置有问题 :(


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接