2010-11-07 16 views
45

J'ai plusieurs gemmes dont ruby-debug dans un groupe de bundler appelé: development. Lorsque j'exécute la commande bundle, ces gemmes sont ignorées et n'installe que les gemmes qui n'appartiennent à aucun groupe. Comment puis-je m'assurer que bundler n'ignore pas les gems dans le groupe: development?Le bundler Rails n'installe pas de gemmes dans un groupe.

Editer: Voici à quoi ressemble mon Gemfile.

source 'http://rubygems.org' 
gem 'rails', '3.0.1' 

# Auth gems 
gem "devise", "1.1.3" 
gem "omniauth" 

# Bundle Mongoid gems 
gem "mongoid", "2.0.0.beta.19" 
gem "bson_ext" 

# Asset gems 
gem 'jquery-rails' 
gem "jammit" 

# Controller gems 
gem 'inherited_resources', '1.1.2' 

# View gems 
gem 'haml' 
gem 'formtastic', '~> 1.1.0' 

# Nokogiri 
gem "mechanize" 
gem "json" 


group :development do 
    gem "ruby-debug" 
    gem 'compass' 
    gem 'compass-colors' 
    gem 'pickler' 
    gem 'haml-rails' 
    gem 'rails3-generators' 
    gem "hpricot" 
    gem "ruby_parser" 
    gem 'fog' 
end 
+0

pouvez-vous poster votre gemfile? – ipsum

+0

quelle version de Rails utilisez-vous? – pex

+0

J'utilise Rails 3. Ajouté mon Gemfile à la poste. – picardo

Répondre

121

Dans une session à long terme, il se souvient de l'option without. Si vous tout d'abord utilisé

bundle install --without development 

il rappelle que vous avez fait cela et je le répète automatiquement pour la prochaine

bundle install #remembers and includes --without development 

autre chose en cours d'exécution, comme bundle install --without nothing devrait vider le cache. Ai-je raison?

mise à jour 20150214: Ceci est corrigé dans bundler 2.0, selon le problème référencé dans le commentaire par @Stan Bondi (https://github.com/bundler/bundler/issues/2862). Merci Stan.

+25

Cela a mis un terme à mes frustrations !!! Faire 'rm .bundle/config' est la meilleure façon de vider le cache. – Kris

+49

Je me suis fait mordre par ça. Les drapeaux de ligne de commande doivent être sans état. – bradgonesurfing

+0

Cela a également sauvé mes frustrations - merci –

-1

En fait Rails charge le groupe :development automatiquement dans un environnement de développement. Vérifiez si Rails.env dans vous App renvoie vraiment "development".

Plus d'informations sur les groupes à Bundler: http://gembundler.com/groups.html

1
gem 'aws-s3' 
    gem 'paperclip' 
     group :test do 
     gem 'rspec' 
     gem 'waitr' 
     gem 'faker' 
     end 

gem 'rest-client', :group => :development 
gem 'cucuber-rails', :groups => [:development,:test] (cucuber-rails gems comes under both group) 

bundle install --without development #(ignore development group gems) 
bundle install #(still bundle remembers --without development so result is still ignore development groups it will not install all gems) 

bundle install --without nothing #(just clearing cache, now all the gems to be loaded into the ruby loadpath) 

More

0

J'ai eu un problème similaire - mince mise en scène ignorée - et la solution était de le mettre si la mise en scène dans l'espace « global »:

gem 'thin' 

group :production do 
    gem 'puma' 
end 
19

Si vous êtes en utilisant les rails, il y aura un fichier config écrit dans un répertoire caché appelé .bundle dans le répertoire racine de vos rails:

.bundle/config 

Ce fichier, dans mon cas, contenait exactement les paramètres without.

Je viens de supprimer le répertoire .bundle:

rm .bundle -r 

Après que:

bundle install a travaillé à nouveau comme prévu.

Using: bundler (1.5.2) 
6

J'ai eu le même problème et --with drapeau travaillé pour moi. Vous devez transmettre le nom du groupe, que vous souhaitez inclure. Comme ça:

bundle install --with development 
+0

S'il vous plaît ajouter plus de description à votre poste. Comment exactement cela aide à résoudre problème mentionné dans la question – Raju