9

我想为一些工作中的服务器(没有互联网访问权限)构建一个 ruby​​gems 镜像,所以我开始像每个人似乎都这样做:

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

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

镜像开始同步良好。好的。但是等等,它会下载http://gems.rubyforge.org的全部内容!我的意思是每个 gem 的所有现有版本。哇。几个小时后,我仍在下载以字母“L”开头的宝石......

更不用说镜像要占用的磁盘空间了。

现在我的问题是:有没有办法设置一个“迷你”rubygems 服务器,比如 CPAN::Mini 允许 Perl:这样的镜像将只包含每个 gem 的最新版本。我猜这在 99.9% 的情况下是人们想要的(至少这对我来说已经足够好了)。

我用谷歌搜索了很多,可悲的是,我找不到任何参考。

如果有人能指出我这样做的方法,我会非常感激。

谢谢!

4

1 回答 1

1

不是您真正要求的,但也许解决此问题的一种方法是设置一个缓存 http 代理,该代理将在请求宝石时缓存它们,如果后续请求命中缓存。

鱿鱼这样的东西应该可以完成这项工作。

然后每个客户端将gem 代理配置为使用 squid,因此所有 gem 下载都通过它,并希望 99% 的时间都在缓存中......

虽然如果您使用捆绑器,代理设置似乎有问题:(

于 2011-01-19T08:00:15.730 回答