2010-12-15 3 views
2

Есть ли способ рассказать Bundler об установке определенного файла .gem. Я лежал?Bundler: установка определенного файла .gem

У меня есть скомпилированная версия ParseTree, которую я должен использовать (черт вас побери, Windows!), Но не хотел расширять файл gem, чтобы добавить атрибут: path => '...' в требование «драгоценного камня».

ответ

1

Я понял это - спасибо всем, кто ответил! :)

Трюк состоял в том, чтобы настроить локальный сервер драгоценных камней (с помощью, «gem server») и изменить источник моего Gemfile, чтобы указать на http://localhost:8808 вместо http://rubygems.org.

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

1

Я не думаю, что вы можете. Насколько мне известно, вам нужно gem распаковать Gem на что-то вроде vendor/и установить опцию: path.

+0

О, и я думаю, что .gem (и распакованная папка) должен содержать файл .gemspec. – 2010-12-15 16:09:46

1

Не можете ли вы указать объявление драгоценного камня на свою вилку ParseTree в Github?

+0

Если честно, я не хочу вносить какие-либо изменения в ParseTree. Я просто хотел, чтобы Bundler использовал * эту * конкретную версию, которая скомпилировала двоичные файлы Win32, поэтому мне не нужно использовать VC++ в другом ящике, который я настраиваю. – 2010-12-15 17:45:00

2

Вы также можете упаковать свои драгоценные камни с помощью bundle package, который помещает все ваши драгоценные камни в каталог поставщика/кеша вашего проекта. При необходимости перезапишите ParseTree с вашим предварительно скомпилированным камнем в этом каталоге. Затем, когда вы создаете свой проект на другом компьютере, запустите bundle install --local, и он установит только то, что вы упаковали.

2

Вместо того чтобы устанавливать свой собственный драгоценный камень-сервер, я был в состоянии решить эту проблему, написав следующее в моем Gemfile (явной версии имеет решающее значение):

gem 'libv8', '3.11.8.3mytest', :path => '../libv8/pkg' 

И папка ../libv8/pkg содержит только двоичный упакованный драгоценный камень libv8-3.11.8.3mytest-x86_64-linux.gem.

Надеюсь, это поможет.

Смежные вопросы