2011-11-12 20 views
15

Ogni volta che esegue un comando rake (vale a dire rake routes) ottengo questo errore:Perché il mio ambiente richiede di eseguire exec bundle?

You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.9.2. Using bundle exec may solve this. 

Se corro bundle exec rake routes funziona.

Voglio essere in grado di semplicemente rake routes senza dover eseguire bundle exec rake routes.

Ho esaminato altre domande con errori simili e provato le varie soluzioni (come l'esecuzione di bundle update) senza alcun risultato.

Inoltre, nel mio gemfile ho specificato gem 'rake', '0.9.2'

Qualche suggerimento?

+0

Aggiornamento rapido. Recentemente ho trovato questa spiegazione da RailsTutorial sulla necessità di usare 'bundle exec':" Come accennato brevemente nella Sezione 3.2.1, è necessario in generale prefisso comandi come rake o rspec con bund exec exec in modo che i programmi vengano eseguiti nell'esatto l'ambiente gem specificato dal Gemfile. (Per motivi tecnici, l'unica eccezione a questo è il comando rails stesso.) "Inoltre," Finché il numero di versione di RVM è 1.11.x o superiore, le gemme installate verranno automaticamente eseguite nella corretta Ambiente bundler ", quindi non richiede il prefisso' bundle exec'. – mmichael

+0

collegamento alla spiegazione: http://ruby.railstutorial.org/chapters/static-pages#sec-eliminating_bundle_exec – mmichael

risposta

8

tenta di eseguire:

gem list 

probabilmente vedrete un paio di versione installata per rastrello. A proposito, bundle exec è il modo corretto di eseguire il codice nel contesto di un'applicazione di rotaie, vedere this per una buona spiegazione. Quindi, puoi usare un alias per digitare meno.

+2

È anche possibile iniziare la sessione della shell con 'export RUBYOPT = -rbundler/setup', che è tutto ciò 'bundle exec' fa. – yfeldblum

+0

Questo è stato molto istruttivo, grazie. – mmichael

+1

Mi dà: ruby: nessun file da caricare - bundler/setup (LoadError) –

2

Nel caso in cui si utilizza rvm. puoi provare a seguire

rvm gem list 
2

Come ha detto @lucapette, probabilmente hai più versioni di rake. Supponendo che tu voglia usare 0.9.2 puoi rimuovere la versione 0.9.2.2 per eliminare l'avviso, quindi eseguire l'installazione di bundle per assicurarti di avere tutte le versioni gem giuste per la versione che desideri (0.9.2 nel tuo caso, 0.8.7 nel mio esempio qui sotto).

Ecco i passaggi:

$ gem list 

*** LOCAL GEMS *** 

... 
rake (0.9.2.2, 0.8.7) 
... 

$ gem uninstall rake 

Select gem to uninstall: 
1. rake-0.8.7 
2. rake-0.9.2.2 
3. All versions 
> 2 

You have requested to uninstall the gem: 
     rake-0.9.2.2 
addressable-2.2.6 depends on [rake (>= 0.7.3)] 
... 
If you remove this gems, one or more dependencies will not be met. 
Continue with Uninstall? [Yn] Y 
Successfully uninstalled rake-0.9.2.2 
INFO: gem "0.9.2.2" is not installed 

$ bundle install 
0

Si può vedere questo messaggio se alcune delle gemme nei tuoi Gemfile richiedono una versione precedente del Rake per quello che avete installato. Forse hai aggiornato il rake. Spesso puoi risolvere il problema aggiornando le tue gemme. Corsa:

bundle update 

Questo aggiornerà il pacchetto utilizzando le gemme più recenti nel tuo gemfile. Questo probabilmente risolverà l'incompatibilità del rake.

Problemi correlati