2012-01-10 11 views
12

Ecco il mio GemfileL'utilizzo di bundle exec può risolvere questo problema?

source :rubygems 

gem 'rake', '0.9.2.2' 
gem 'sinatra' 
gem 'activerecord', '3.0.9' 
gem 'pg', '~> 0.12.2' 
gem 'logger' 
gem 'nokogiri' 

group :development, :test do 
    gem 'rack-test' 
    gem 'ruby-debug19' 
    gem 'sqlite3' 
end 

corro rake console che opera in altri progetti e ora ricevo questo messaggio:

You have already activated activesupport 3.1.3, but your Gemfile requires activesupport 3.0.9. Using bundle exec may solve this.

Come si usa `exec fascio a risolvere questo problema? Cosa significa?

risposta

11

È possibile eseguire bundle exec rake console il che significa che il comando (in questo caso rake console) verrà bloccato per le gemme specifiche elencate nel file Gem.

+1

Si noti che in alcune versioni di rvm, 'exec fascio' è necessaria, e, in alcuni, è automatico . Penso che sia stata una comodità che hanno aggiunto per un po 'e poi sono tornati perché causava problemi. –

+0

Cool, non lo sapevo! –

41

Per interrompere l'uso di bundle exec rake è possibile eseguire bundle clean --force. Questo comando aggiornerà il tuo Gemfile.lock.

+0

ha funzionato come un fascino! –

+6

Mi chiedo perché questa non è la risposta accettata. – vipin8169

+0

Funziona! Molto meglio del bundle exec workaround – pronoob

6

rubygems-bundler risolve questo problema. Eseguire i seguenti comandi:

$ gem install rubygems-bundler

$ $ gem regenerate_binstubs

riprovare il vostro pacco.

+0

questo ha funzionato per me e la risposta migliore è che funziona senza apportare modifiche al tuo Gemfile e Gemfile.lock esistenti. –

0

È possibile verificare di includere rake nel proprio file Gem. Se non lo è, aggiungilo e specifica la versione "che hai già attivato".

oppure si può semplicemente aggiornarlo sul vostro locale, come

bundle update rake 

Spero che questo aiuta

Problemi correlati