Бандлер и гемы на github

Итак, когда у вас есть пакет, устанавливающий гем из github, он фактически не устанавливается, не так ли? gem list не будет перечислять эти драгоценные камни.

Это подводит меня к моей загадке: я работаю над скриптом, который хочет использовать один из этих драгоценных камней, которые на самом деле не устанавливаются. Что теперь? Я мог бы проверить репозиторий github вручную и собрать/установить гем, но теперь у меня есть одна версия, управляемая упаковщиком, а другая — нет. Я мог бы указать скрипту каталог gem в ~/.rvm, но это не очень хорошая идея, когда приходит время переходить к производству.

Я пытаюсь найти команду упаковщика, которая заставит любые драгоценные камни из github «зарегистрироваться» с помощью rubygems, но пока ничего. Какие-либо предложения?


person Rob Cameron    schedule 30.09.2010    source источник
comment
пробовали ли вы набрать bundle show agemthatdoesntshowingemlist (замените agemthatdoesntshowingemlist на драгоценный камень, который не отображается в списке драгоценных камней)   -  person hellvinz    schedule 30.09.2010
comment
Конечно, здесь указано местонахождение в ~/.rvm/gems, но, по-видимому, оно не зарегистрировано в rubygems, потому что require 'hiddengem' не работает: LoadError: no such file to load — hiddengem. Как я уже сказал, мне может потребоваться полный путь к драгоценному камню, и мой скрипт будет прекрасно работать в моей локальной системе, но если я поставлю код где-нибудь еще, он сломается повсюду.   -  person Rob Cameron    schedule 30.09.2010


Ответы (2)


По иронии судьбы, это тот же ответ, что и на предыдущий вопрос, который у меня был, на который я сам ответил тем же решением (хотя в сборщике 0.9 он немного отличался):

require 'rubygems'
require 'bundler/setup'
require 'hiddengem'

bundler/setup делает сборщик "стеком" доступным так же, как если бы они были регулярно устанавливаемыми драгоценными камнями. Рано или поздно я это вспомню. :)

person Rob Cameron    schedule 30.09.2010

rubygems-bundler — это гем, решающий эту проблему. Если он установлен в вашей системе, вам не нужен дополнительный код в вашем проекте. Возможно, его нужно будет установить как @global, поэтому, подытоживая все это:

$ rvm use @global
$ gem install rubygems-bundler

И затем, чтобы вернуться к версии rvm, которую вы использовали:

$ rvm use @
person Isaac Betesh    schedule 03.06.2014