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.
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.
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.
une solution simple qui a fonctionné pour moi est simplement d'exécuter bundle update rake
.
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:
- râteau-10.5.0
- râteau-11.1.1
- râteau-11.1.2
- râteau-11.2.2
- râteau-11.3.0
- toutes les versions
j'ai désinstallé à la fois rake-11.2.2
et rake-11.3.0
. Qui a corrigé mon problème
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
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.
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.
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.
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!
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.