webentwicklung-frage-antwort-db.com.de

Bereits aktivierte Rake-Versionen, die von Gemfile abweichen, verhindert Rake-Befehle

Hier ist mein Fehler:

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)

Ich kann keine Rake-Aufgaben ausführen und dies scheint die Wurzel aller anderen Probleme zu sein. Vor einigen Tagen war es nicht so, als ich Rake-Befehle ausgeführt habe. Kann jemand erklären, was hier los ist und wie Sie meine App wieder auf Kurs bringen können? Ich habe eine Mauer getroffen. Außerdem behebt bundle exec nicht die Wurzel des Problems für mich. Ich musste das früher nie tun und es funktioniert immer noch nicht.

28
Aaron

EDIT 2: Sie sollten sich bundle update ansehen und Ihren Workflow ein wenig ändern. Siehe diese Frage für weitere Unterstützung.


Originalantwort

Dies ist ein einfaches Problem, das auftritt, wenn Ihr Gemset eine Rake-Version hat, die neuer als die Versionsnummer ist, die Ihr Gemfile.lock erwähnt.

Wie in der Fehlermeldung erwähnt, können Sie bundle exec verwenden, um die Dinge zum Laufen zu bringen.

Meine Lösung in solchen Fällen ist, einfach Gemfile.lock zu entfernen, wenn andere Edelsteinversionen und ihre endlosen Abhängigkeiten nicht allzu besorgt sind. Ansonsten können Sie einfach versuchen, die eine Zeile in Gemfile.lock zu entfernen, in der über die Version von Rake gesprochen wird. Laufen Sie bundle install und die Welt sollte wieder ein glücklicher Ort sein. (edit 2: Führen Sie stattdessen bundle update --source aus. Tun Sie das nicht.

PS: Verwenden Sie Gemsets und organisieren Sie Ihre Edelsteine ​​mit rvm für verschiedene Projekte.

Bearbeiten

Ich bevorzuge die Verwendung von rbenv now zur Verwaltung von Installationen. Alle Juwelen für ein Projekt befinden sich in vendor/bundle mit der Option bundle install --path. Spannen Sie später jeden Edelsteinbefehl mit bundle exec ein.

Aus Rails s wird bundle exec Rails s. Ein wenig mehr Tippen ist meiner Meinung nach besser, wenn es bedeutet, dass die Dinge sauber bleiben und Konflikte wie diese nicht auftreten.

34
manu29.d

Sie können rubygems-bundler verwenden, um das Problem zu lösen. Führen Sie die folgenden Befehle aus:

$ gem install rubygems-bundler

$ gem regenerate_binstubs

Dann versuche es noch einmal mit deinem Rechen.

29
Benjamin Dunphy

Eine einfache Lösung, die für mich funktioniert hat, ist, einfach bundle update rake auszuführen.

26
philoye

Ich hatte ein ähnliches Problem und war skeptisch, eine Zeile aus meinem Gemfile.lock zu entfernen, es schien hackig zu sein, und die Unannehmlichkeit, jedem Rake-Befehl bundle exec vorzusetzen, war keine Option. Ich habe dieses Problem behoben, indem ich zuerst in meinen Gemfile.lock ging, um zu sehen, welche Version von rake dort war (in meinem Fall war es 11.1.2). Mein Gedanke war, rake zu deinstallieren und diese Version zu installieren. Das Ausführen von gem uninstall rake ergab diese Ausgabe:

Wähle den zu deinstallierenden Edelstein:

  1. rechen 10.5.0
  2. rechen 11.1.1
  3. rechen 11.1.2
  4. rechen 11.2.2
  5. rechen-11.3.0
  6. Alle Versionen

Ich habe sowohl rake-11.2.2 als auch rake-11.3.0 deinstalliert. Das hat mein Problem behoben

15
Abass Sesay

Benutze das:

gem install rake -v "version-you-want"
2
Ishpreet

Gemäß dieser Lösung (die für mich funktioniert hat): https://stackoverflow.com/a/23668399/4260090

Sie können es lösen, indem Sie rubygems-bundler verwenden.

Geben Sie diese Befehle in Ihr Terminal ein:

$ gem install rubygems-bundler
$ gem regenerate_binstubs

Es sollte jetzt klappen

1

Geben Sie diesen Befehl ein:

bundle update rake
1
Oleg Dikusar

Gehen Sie in Gemfile.lock, suchen Sie die Rake-Datei und aktualisieren Sie die Version dort.

Ich habe diesen Fehler erhalten:

Gem :: LoadError: Sie haben Rake 11.2.2 bereits aktiviert, aber Ihre Gemfile benötigt Rechen 11.1.2. bundle exec für Ihren Befehl vorlegen kann das lösen.

Was ich tat, war, die Version des Rakes im Gemfile.lock von: rake (11.1.2) in rake (11.2.2) zu ändern. 

Danach hat alles gut funktioniert.

0
SJ LaPorte

bundle update rake funktioniert auch für mich. 

Mein Fehler war Gem::LoadError: You have already activated rake 12.3.1, but your Gemfile requires rake 12.3.0. Prependingbundle execto your command may solve this.

0
gsumk

Ich habe ein ähnliches Problem ... Meine Lösung ist, die Zeile der Rake-Version "gem 'rake", "~> 10.3" "in der Datei Gemfile zu ändern, Gemfile.lock zu löschen und" Bundler Install "auszuführen, das neue Gemfile.lock zeigt die neue Version 10.3.1. Dann wird alles gut.

0
rookie jack

Wie bereits in früheren Antworten erwähnt, ist dies ein einfaches Problem, das auftritt, wenn Ihr Gemset eine Rake-Version hat, die neuer ist als die Versionsnummer, die Ihr Gemfile.lock erwähnt.

Der einfachste Weg zum Debuggen ist die Ausführung von bundle update.

Die andere Möglichkeit wäre, Gemfile.lock zu entfernen und bundle install auszuführen oder einfach die Zeile in Gemfile.lock zu löschen, die der Rake-Version entspricht, und bundle install auszuprobieren. Dies kann jedoch manchmal die Gemfile beschädigen. Ich würde die erste Methode vorziehen, weil sie die sicherste und einfachste ist.

0
Parardha Kumar

Ich habe einen anderen Weg ausprobiert, nämlich Gemfile.lock löschen und dann bundle install ausführen. Danach führe ich rake db:migrate aus. Und alles funktioniert gut.

Ich denke nicht, dass Gemfile.lock entfernen ist eine schlechte Praxis, kann aber sein; Wer weiß. 

0
egyamado

Ich hatte den gleichen Fehler:

Sie haben Rake 12.0.0 bereits aktiviert, aber Ihre Gemfile erfordert Rake 11.3.0. Wenn Sie dem Befehl "Bundle exec" voranstellen, kann dies möglicherweise gelöst werden.

Ich habe es gelöst, indem ich bundle update ausgeführt habe.

dies hat die Rake-Version auf meine aktivierte Rake-Version aktualisiert und alles hat funktioniert. Ich hoffe, das funktioniert für Sie!

0
bright