2012-01-10 9 views
12

Aquí es mi Gemfile¿El uso de bundle exec puede solucionar esto?

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 que trabaja en otros proyectos y ahora me sale este mensaje:

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

¿Cómo se utiliza `paquete exec para solucionar esto? Qué significa eso?

Respuesta

11

Puede ejecutar bundle exec rake console, lo que significa que el comando (en este caso rake console) se bloqueará a las gemas específicas enumeradas en su Gemfile.

+1

Tenga en cuenta que en algunas versiones de RVM, 'exec paquete' es necesario, y en algunos, es automática . Creo que fue una conveniencia que agregaron por un tiempo, y luego se retiró porque estaba causando problemas. –

+0

Genial, ¡no lo sabía! –

41

Para dejar de usar bundle exec rake puede ejecutar bundle clean --force. Este comando actualizará tu Gemfile.lock.

+0

funcionó como un encanto! –

+6

me pregunto por qué esta no es la respuesta aceptada en su lugar. – vipin8169

+0

Esto funciona! Mucho mejor que la solución provisional del paquete – pronoob

6

rubygems-bundler lo resuelve. Ejecute los siguientes comandos:

$ gem install rubygems-bundler

$ $ gem regenerate_binstubs

Luego probar su paquete de nuevo.

+0

, esto funcionó para mí y es la mejor respuesta que funciona sin realizar ningún cambio en su Gemfile y Gemfile.lock existentes –

0

Puede comprobar para asegurarse de incluir rake en su Gemfile. Si no es así, agrégalo y especifica la versión "ya activado".

o simplemente puede actualizarlo en su local, como

bundle update rake 

espero que esto ayuda

Cuestiones relacionadas