如何构建rubygems镜像服务器?

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

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

您可以使用rubygems-mirror将gem和Gem 镜像到一个框中以托管它们。

安装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的本地镜像 ,因此您无需更改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 

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