如何构建rubygems镜像服务器?

时间:2011-12-07 06:00:09

标签: ruby-on-rails ruby rubygems

我的工作场所禁止我们上网,因此我们无法连接到rubygems.org远程安装宝石。

我可以在家访问rubygems.org。是否有一种简单的方法可以让我下载和更新我们在家需要的宝石,然后将它们(通过便携式硬盘或其他东西)同步到我工作场所的本地宝石镜像服务器,以便其他同事可以 从该镜像服务器安装gem?

2 个答案:

答案 0 :(得分:36)

您可以使用rubygems-mirror镜像宝石,Gem in a box来托管它们。

安装rubygems-mirror:

$ gem install rubygems-mirror

修改~/.gem/.mirrorrc

---
- from: http://rubygems.org
  to: ~/.gem/mirror

创建镜像目录:

$ mkdir ~/.gem/mirror

开始镜像:

$ gem mirror

完成镜像后,修改~/.gem/mirror/config.ru

require "rubygems"
require "geminabox"

Geminabox.data = "./"
run Geminabox

在一个框中安装Gem:

$ gem install geminabox

启动gem服务器:

$ cd ~/.gem/mirror
$ rackup

编辑应用程序的Gemfile以使用您的gem服务器:

source "http://your.servers.ip:9292"
.

或者将其添加为rubygems.org的本地mirror,因此您无需更改Gemfile

$ bundle config mirror.https://rubygems.org https://localgems.lan
$ bundle config mirror.http://rubygems.org http://localgems.lan

不时重新索引镜像:

$ gem generate_index --directory ~/.gem/mirror

答案 1 :(得分:0)

我不认为'宝石镜'继续从它离开的地方非常可靠。我遇到了以下问题https://github.com/rubygems/rubygems-mirror/issues/22,我等待从宝石所有者那里收到回复