Как построить зеркальный сервер rubygems? - PullRequest
23 голосов
/ 07 декабря 2011

Мое рабочее место запретило нам доступ в Интернет, поэтому мы не можем подключиться к rubygems.org для удаленной установки gems.

Я могу получить доступ к rubygems.org дома.Есть ли простой способ, позволяющий мне загружать и обновлять гемы, которые нам нужны дома, а затем синхронизировать их (с помощью портативного жесткого диска или чего-то еще) с локальным зеркальным сервером драгоценных камней на моем рабочем месте, чтобы другие коллеги могли устанавливать гемы с этого зеркального сервера

Ответы [ 2 ]

36 голосов
/ 07 декабря 2011

Вы можете использовать rubygems-mirror для зеркального отображения драгоценных камней и 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

Запустить гем-сервер:

$ cd ~/.gem/mirror
$ rackup

Отредактируйте Gemfile вашего приложения, чтобы использовать ваш гем-сервер:

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
0 голосов
/ 21 июня 2014

Я не думаю, что «драгоценное зеркало» продолжается с того места, где оно осталось, очень надежно. Я столкнулся со следующей проблемой https://github.com/rubygems/rubygems-mirror/issues/22, и я жду ответа от владельцев драгоценных камней

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...