2010-09-08 7 views
4

J'ai ces lignes Gemfile:Bundler, Rails3: comment éviter git vérifier des gemmes de bord dans: groupe de test lors du déploiement?

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

Lorsque je tente de déployer sur le serveur ne via bundle install --deployment --quiet --without development test, je reçois une erreur:

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. 

Je n'ai pas exécutable git sur le serveur. Mais je ne veux pas utiliser git car cucumber dans: test group, et j'exécute bundler avec "--without test"!

Que dois-je faire?

Répondre

3

Il n'existe aucun moyen de le faire. Parce que cela est caractéristique de Bundler

Note that on bundle install, bundler downloads and evaluates all gems, in order to create a single canonical list of all of the required gems and their dependencies. This means that you cannot list different versions of the same gems in different groups. For more details, see Understanding Bundler.

http://gembundler.com/man/gemfile.5.html (voir partie GROUPE)

Et vous ne l'avez pas git ou des pierres précieuses à votre serveur. Vous devez utiliser bundle pack. Mais, maintenant bundle packdon't work with git. Ensuite, vous devez emballer les sources git manuellement:

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

Ensuite, dans votre Gemfile,

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

.

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