我想为工作中的某些服务器构建一个rubygems镜像(无法访问Internet),所以我开始像每个人一样:
$ cat gemmirror.config
---
- from: http://gems.rubyforge.org
to: /data/rubygems/mirror
$ gem mirror --config-file=gemmirror.config
镜像开始同步。好。但是等等,它会下载http://gems.rubyforge.org的全部内容!我的意思是每个宝石的所有现有版本。哇。几个小时后,我仍在下载以字母“L”开头的宝石......
更不用说镜子要占用的磁盘空间了。
现在我的问题:有没有办法设置一个“迷你”rubygems服务器,如CPAN :: Mini允许Perl:这样的镜像只包含每个宝石的最新版本。我想这是人们想要的99.9%的情况(至少这对我来说非常好)。
我搜索了很多,遗憾的是,我找不到任何参考。
如果有人能指出我这样做的方式,我会非常感激。
谢谢!
答案 0 :(得分:1)
不是你真正要求的,但也许解决这个问题的一种方法是设置一个缓存的http代理,它会在请求时缓存gems,后续请求会到达缓存。
squid之类的东西可以胜任。
然后每个客户端配置gem proxy以使用squid,因此所有gem下载都会通过它,并且希望99%的时间都在缓存中...
虽然如果你使用bundler,似乎是has issues with the proxy settings :(