ruby on rails - La versión de rake ya activada, diferente a la que requiere Gemfile, previene los comandos de rake
ruby-on-rails (12)
Aquí está mi error:
rake aborted!
Gem::LoadError: You have already activated rake 10.3.1, but your Gemfile requires rake 10.2.2. Prepending `bundle exec` to your command may solve this.
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:34:in `block in setup''
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:19:in `setup''
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler.rb:119:in `setup''
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler/setup.rb:7:in `<top (required)>''
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/boot.rb:4:in `<top (required)>''
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/application.rb:1:in `<top (required)>''
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/Rakefile:4:in `<top (required)>''
LoadError: cannot load such file -- bundler/setup
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/boot.rb:4:in `<top (required)>''
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/application.rb:1:in `<top (required)>''
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/Rakefile:4:in `<top (required)>''
(See full trace by running task with --trace)
No puedo ejecutar ninguna tarea de rake y esta parece ser la raíz de todos mis otros problemas. No fue así hace un par de días cuando estaba ejecutando comandos de rake. ¿Alguien puede explicar qué está pasando aquí y cómo hacer que mi aplicación vuelva a encarrilarse? He golpeado una pared Además, el bundle exec
no soluciona la raíz del problema para mí. Nunca tuve que hacer eso en el pasado y todavía no funciona.
Como se mencionó en las respuestas anteriores, este es un problema simple que ocurre cuando su conjunto de gemas tiene una versión de rake más reciente que el número de versión que menciona su Gemfile.lock
.
La forma más fácil de depurar esto es ejecutar la bundle update
.
Las otras formas podrían ser eliminar Gemfile.lock
y ejecutar la bundle install
o simplemente eliminar la línea en Gemfile.lock
que corresponde a la versión de rake e intentar la bundle install
. Pero esto podría corromper a veces el Gemfile. Preferiría el primer método porque es el más seguro y el más fácil.
Escriba este comando:
bundle update rake
Me encuentro con el problema similar. Mi solución es cambiar la línea de la versión de rake "gem ''rake'', ''~> 10.3''" en el archivo Gemfile, eliminar Gemfile.lock y ejecutar ''bundler install'', el nuevo Gemfile.lock mostrará la nueva versión 10.3.1. Entonces todo estará bien.
Puedes usar rubygems-bundler
para resolver esto. Ejecuta los siguientes comandos:
$ gem install rubygems-bundler
$ gem regenerate_binstubs
A continuación, intente su rastrillo de nuevo.
Según esta solución (que funcionó para mí): https://.com/a/23668399/4260090
Puedes resolverlo usando rubygems-bundler
Escriba estos comandos en su terminal:
$ gem install rubygems-bundler
$ gem regenerate_binstubs
Debería funcionar ahora
Tuve un problema similar y era escéptico sobre la eliminación de una línea de mi Gemfile.lock
, me pareció extraño y el inconveniente de incluir el bundle exec
en cada comando de rake tampoco era una opción. Gemfile.lock
esto entrando primero en mi Gemfile.lock
para ver qué versión de rake
estaba allí (en mi caso era 11.1.2). Mi pensamiento fue desinstalar rake
e instalar esta versión. La ejecución de la gem uninstall rake
dio esta salida:
Seleccione gema para desinstalar:
- rake-10.5.0
- rake-11.1.1
- rake-11.1.2
- rake-11.2.2
- rake-11.3.0
- Todas las versiones
Desinstalé rake-11.2.2
y rake-11.3.0
. Que soluciono mi problema
Una solución simple que funcionó para mí es simplemente ejecutar bundle update rake
.
Utilizar esta:
gem install rake -v "version-you-want"
Ve al Gemfile.lock
, encuentra el archivo de rake y actualiza la versión allí.
Tengo este error
Gem :: LoadError: Ya has activado el rake 11.2.2, pero tu Gemfile requiere un rake 11.1.2. Preponer el
bundle exec
a tu comando puede resolver esto.
Lo que hice fue cambiar la versión de rake en el Gemfile.lock
de: rake (11.1.2)
a rake (11.2.2)
.
Todo funcionó bien después de eso.
Yo tenía el mismo error:
Ya ha activado el rake 12.0.0, pero su Gemfile requiere un rake 11.3.0. Preponer "bundle exec" a su comando puede resolver esto.
Lo solucioné ejecutando la bundle update
Esto actualizó la versión de rake a mi versión de rake activada y todo funcionó. ¡Espero que te funcione!
Gemfile.lock
otra manera que es eliminar Gemfile.lock
luego ejecutar bundle install
. Después de eso ejecuto rake db:migrate
. Y todo funciona bien.
Aunque no creo que eliminar Gemfile.lock
sea una mala práctica, pero puede serlo; quien sabe.
EDIT 2: Debería mirar la bundle update
y cambiar un poco su flujo de trabajo. Consulte esta pregunta para obtener más ayuda.
Respuesta original
Este es un problema simple que ocurre cuando su conjunto de gemas tiene una versión de rake que es más reciente que el número de versión que menciona Gemfile.lock
.
Como se menciona en el mensaje de error, puede usar bundle exec
para que las cosas funcionen.
Mi solución en tales casos es simplemente eliminar Gemfile.lock
si no me preocupan otras versiones de gemas y sus interminables dependencias. De lo contrario, puede intentar simplemente eliminando una línea en Gemfile.lock
que habla sobre la versión de rake. ejecuta bundle install
y el mundo debería ser un lugar feliz otra vez. ( Edición 2 : Ejecute la bundle update --source
lugar de esto. No haga esto.)
PD: intente usar gemsets y organizar sus gemas con rvm para diferentes proyectos.
Editar
Prefiero usar rbenv ahora para administrar instalaciones y todas las gemas para un proyecto residen en el vendor/bundle
usando la opción de bundle install --path
. Más tarde alcance cada comando de gema con el bundle exec
.
Por lo tanto, los rails s
convierten en bundle exec rails s
. Un poco más de mecanografía es, en mi opinión, mejor si significa que las cosas se mantendrán limpias y los conflictos como este no sucederán.