Bundler, Rails3: как избежать git-проверки краевых гемов в: тестовой группе при развертывании? - PullRequest
4 голосов
/ 08 сентября 2010

У меня есть такие строки в Gemfile:

group :test do
  ...
  gem 'cucumber', :git => "git://github.com/aslakhellesoy/cucumber.git"
  ...
end

Когда я пытаюсь выполнить развертывание на сервере через bundle install --deployment --quiet --without development test, я получаю ошибку:

 sh: git: command not found
 ** An error has occurred in git when running `git clone "git://github.com/aslakhellesoy/cucumber.git" "/home/test/rails_apps/test_app/shared/bundle/ruby/1.8/cache/bundler/git/cucumber-3eb3f1a09813a1271fada66aac31d953ef2ad625" --bare --no-hardlinks. Cannot complete bundling.

У меня нет исполняемого файла gitна сервере.Но я не хочу использовать git, потому что cucumber в: test group, и я запускаю упаковщик с "--without test"!

Что мне делать?

1 Ответ

3 голосов
/ 17 сентября 2010

Нет способа сделать это. Потому что это особенность пакета

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

http://gembundler.com/man/gemfile.5.html (см. ГРУППУ часть)

Как насчет того, что на вашем сервере нет git или каких-либо драгоценных камней Вы должны использовать bundle pack. Но теперь bundle pack не работает с git . Затем вы должны упаковать исходники git вручную:

cd vendor/git
git clone git://github.com/foo/foo.git

Затем в вашем Gemfile

gem "foo",: path => "vendor / git / foo"

.

http://github.com/carlhuda/bundler/issues/labels/git#issue/67

...