La version de râteau déjà activée différente de ce que Gemfile nécessite empêche les commandes de râteau

Voici mon erreur:

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)

Je ne peux pas exécuter de tâches de ratissage et cela semble être la racine de tous mes autres problèmes. Ce n'était pas comme ça il y a quelques jours quand j'ai lancé des ordres de ratissage. Quelqu'un peut-il expliquer ce qui se passe ici et comment obtenir mon application sur les rails? J'ai frappé un mur. En outre, bundle exec ne répare pas la racine du problème pour moi. Je n'ai jamais eu à faire ça dans le passé et ça ne fonctionne toujours pas.

26
demandé sur Aaron 2014-04-25 11:57:11

12 réponses

EDIT 2: Vous devriez regarder bundle update et changer votre flux de travail un peu. Se référer à cette question pour plus d'aide.


réponse originale

il s'agit d'un problème simple qui se produit lorsque votre gemset a une version râteau qui est plus récente que le numéro de version que votre Gemfile.lock mentionne.

Comme c'est mentionné dans le message d'erreur, vous pouvez utiliser bundle exec pour faire fonctionner les choses.

ma solution dans de tels cas est de simplement supprimer Gemfile.lock si Je ne suis pas trop inquiet autres versions de gem et leurs dépendances sans fin. Sinon, vous pouvez simplement essayer de supprimer la ligne dans Gemfile.lock qui parle de la version de rake. exécuter bundle install et le monde devrait être heureux à nouveau. ( edit 2 : Run bundle update --source au lieu de cela. Ne pas le faire ce.)

PS: essayez d'utiliser gemsets et d'organiser vos gems avec rvm pour différents projets.

Modifier

je préfère utiliser rbenv maintenant pour la gestion des installations et tous les gemmes pour un projet résident dans vendor/bundle en utilisant bundle install --path option. Plus tard, scope chaque commande gem avec bundle exec .

D'où, rails s devient bundle exec rails s . Un peu plus de dactylographie est, à mon avis, mieux si cela signifie que les choses resteront propres et les conflits tels que celui-ci ne se produisent pas.

34
répondu manu29.d 2017-05-23 11:46:58

vous pouvez utiliser rubygems-bundler pour résoudre ce problème. Exécutez les commandes suivantes:

$ gem install rubygems-bundler



$ gem regenerate_binstubs

alors réessayez.

27
répondu Benjamin Dunphy 2016-04-25 10:22:58

une solution simple qui a fonctionné pour moi est simplement d'exécuter bundle update rake .

25
répondu philoye 2016-06-20 02:12:28

j'ai eu un problème similaire et j'étais sceptique au sujet de supprimer une ligne de mon Gemfile.lock , il a semblé hacky et l'inconvénient de préparer bundle exec à chaque commande de râteau n'était pas une option non plus. J'ai corrigé cela en allant d'abord dans mon Gemfile.lock pour voir quelle version de rake était là (dans mon cas c'était 11.1.2). Ma pensée a été de désinstaller rake et d'installer cette version. L'exécution de gem uninstall rake a donné ce résultat:

sélectionner gem à désinstaller:

  1. râteau-10.5.0
  2. râteau-11.1.1
  3. râteau-11.1.2
  4. râteau-11.2.2
  5. râteau-11.3.0
  6. toutes les versions

j'ai désinstallé à la fois rake-11.2.2 et rake-11.3.0 . Qui a corrigé mon problème

11
répondu Abass Sesay 2016-12-15 21:25:59

utilisez ceci:

gem install rake -v "version-you-want"
2
répondu Ishpreet 2017-01-20 11:13:12

selon cette solution (qui a fonctionné pour moi): https://stackoverflow.com/a/23668399/4260090

vous pouvez le résoudre en utilisant rubygems-bundler

Tapez ces commandes dans votre terminal:

$ gem install rubygems-bundler
$ gem regenerate_binstubs

Il devrait maintenant fonctionner

1
répondu Emmanuel Derozin 2017-05-23 12:09:36

tapez cette commande:

bundle update rake
1
répondu Oleg Dikusar 2018-02-22 09:17:44

j'ai essayé une autre façon qui est supprimer Gemfile.lock puis exécuter bundle install . Après cela, je cours rake db:migrate . Et tout fonctionne bien.

bien que je ne pense pas supprimer Gemfile.lock est une mauvaise pratique, mais peut-être; qui sait.

0
répondu egyamado 2016-05-23 19:43:33

comme mentionné dans les réponses précédentes, il s'agit d'un problème simple qui se produit lorsque votre gemset a une version râteau qui est plus récente que le numéro de version de votre Gemfile.lock mentionne.

la façon la plus facile de déboguer ceci est d'exécuter bundle update .

les autres moyens pourraient être de supprimer Gemfile.lock et d'exécuter bundle install ou simplement supprimer la ligne dans Gemfile.lock qui correspond à la version de râteau et essayer bundle install . Mais cela pourrait parfois corrompre la Gemfile. Je préférerais la première méthode parce qu'elle est la plus sûre et la plus facile.

0
répondu Parardha Kumar 2016-07-04 03:43:43

Aller dans le Gemfile.lock , trouver le râteau fichier et mettre à jour la version.

j'ai eu cette erreur:

Gem:: LoadError: vous avez déjà activé rake 11.2.2, mais votre Gemfile nécessite un râteau 11.1.2. Préparer bundle exec à votre commande peut résoudre ce problème.

ce que j'ai fait était de changer la version de rake dans le Gemfile.lock de: rake (11.1.2) à rake (11.2.2) .

tout a bien fonctionné après ça.

0
répondu SJ LaPorte 2016-07-24 11:25:03

j'ai eu la même erreur:

vous avez déjà activé rake 12.0.0, mais votre fichier Gemfile nécessite rake 11.3.0. Ajoutant "bundle exec" à votre commande peut résoudre ce problème.

Je l'ai résolu en lançant bundle update

cette mise à jour de la version de râteau à ma version de râteau activé et tout a fonctionné j'espère que cela fonctionne pour vous!

0
répondu bright 2017-01-14 21:07:31

je rencontre le même problème. Ma solution est de changer la ligne de rake version " gem 'rake', '~ > 10.3' " dans le fichier Gemfile, supprimer Gemfile.verrouiller et exécuter 'bundler install', le nouveau Gemfile.serrure montrer la nouvelle version 10.3.1. Puis tout se passera bien.

0
répondu rookie jack 2018-01-07 21:52:17