【问题标题】:How to build a rubygems mirror server?如何搭建一个rubygems镜像服务器?
【发布时间】:2011-12-07 06:00:08
【问题描述】:

我的工作场所禁止我们访问互联网,因此我们无法连接到 ruby​​gems.org 来远程安装 gems。

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

【问题讨论】:

  • 你在哪里工作?这听起来不合理!
  • 哈哈,别提 gems 了,没有 Google 怎么办?

标签: ruby-on-rails ruby rubygems


【解决方案1】:

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

安装 ruby​​gems-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"
.

或将其添加为 ruby​​gems.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

【讨论】:

  • 谢谢!如果我想更新镜像,我需要做的就是: step 1. $gem mirror; step2.xcopy ~/.gem/mirror 在家里电脑到我工作场所的本地服务器上的 ~/.gem/mirror,对吗?
  • 是的,您还需要在盒子服务器中配置 Gem 并更新源以指向它。
  • 我希望它使用多少磁盘空间?我问这也关心镜像操作可能下载的千兆字节数。另外,这是一个可以停止然后从它离开的地方恢复的操作吗?当然,我指的是“gem mirror”命令。
  • 目前有超过 44k 的 gem (rubygems.org/stats) 将占用超过 100GB 的空间。除非你真的需要,否则我建议不要这样做。 gem mirror 命令可以中止并从中断处继续。
  • 嗨,我正在尝试做同样的事情。谁能指导我完成步骤@TomCaps。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-16
    • 2022-08-03
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    相关资源
    最近更新 更多