Хранилище Ruby Gems - PullRequest
       10

Хранилище Ruby Gems

6 голосов
/ 12 ноября 2009

Я пытаюсь установить хранилище гемов на одном из наших локальных серверов. Вот шаги, которые я выполняю, которые я выполнил из нескольких руководств.

1) Я создаю папку BASEDIR / var / www / html / gems
2) sudo cp -r /usr/lib/ruby/gems/1.8/gems/someGem / var / www / html / gems
3) sudo gem generate_index -d / var / www / html / gems

Однако, когда я запускаю это, я получаю следующий вывод:

Loading 0 gems from /var/www/html/gems

Loaded all gems
Generating quick index gemspecs for 0 gems

Complete
Generating specs index
Generating latest specs index
Generating quick index
Generating latest index
Generating Marshal master index
Generating YAML master index for 0 gems (this may take a while)

Complete
Compressing indicies

По какой-то причине он не загружает камень. Я видел руководство, которое рекомендовало сделать BASEDIR как / var / www / html / rubygems / , а затем создать каталог gems / внутри BASEDIR и скопируйте нужные драгоценные камни в этот каталог gems / . Я тоже пробовал это, но получал те же результаты.

К сожалению, нашему серверу выпала такая же конфигурация, как указано в этом посте (RHEL5, ruby ​​1.8.5, / var и / tmp на отдельных разделах), но мы обновились, как было предложено, до ruby 1.8.6, но он все равно не загрузит драгоценный камень.

Кто-нибудь сталкивался с этим? Нашли решение?

Ответы [ 4 ]

5 голосов
/ 27 августа 2013

Мы внутренне используем Artifactory для управления нашими собственными рубиновыми устройствами - некоторые из них являются собственностью, а другие - публично выпущены. мы можем обеспечить безопасность между нашими различными группами (dev, qa - prerelease, release, ...)

Кроме того, rubygems.org проксируется и кэшируется локально, что помогает нам повысить производительность и избежать удаленных простоев.

В конечном итоге разработчики используют один исходный URL-адрес, прозрачно агрегируя как удаленные, так и локальные репозитории.

5 голосов
/ 01 июля 2010

Я наткнулся на свой старый пост и понял, что я действительно решил это некоторое время назад, поэтому я решил опубликовать свой ответ.

Проблема заключалась в моем шаге 2: скопировать действие gems.

В ОП я пробовал

2) sudo cp -r /usr/lib/ruby/gems/1.8/gems/someGem / var / www / html / gems

Я обнаружил, что мне нужно было скопировать реальные файлы .gem , которые находились в ... / gems / 1.8 / gems / cache . Итак, что мне действительно нужно было сделать для шага 2:

sudo cp .../gems/1.8/gems/cache/*.gem /var/www/html/gems

После правильного копирования драгоценных камней индексация работала должным образом, и тогда мы могли бы использовать наш сервер, добавив его в качестве источника драгоценных камней на различных машинах. После этого установка наших драгоценных камней прошла гладко.

4 голосов
/ 12 ноября 2009

Вы должны создать индекс не в подкаталоге gems. Но на основании одного.

sudo gem generate_index -d /var/www/html

Он будет автоматически принимать драгоценные камни в подкаталоге gems.
И сгенерировать индекс по в basedir.

0 голосов
/ 14 февраля 2010

Со мной произошло то же самое, поэтому я начал просматривать код для Gem :: Indexer и написал несколько строк кода для индексации из irb, запущенного с моего хоста (тот, что выше ./gems):

require 'rubygems'
require 'rubygems/indexer'

i=Gem::Indexer.new '.'
i.generate_index

А если вы хотите обновить индекс позже:

require 'rubygems'
require 'rubygems/indexer'

i=Gem::Indexer.new '.'
i.update_index

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

...