ここに私のエラーがあります:
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)
レーキタスクを実行できません。これが他のすべての問題の原因のようです。数日前にrakeコマンドを実行していたとき、これは好きではありませんでした。誰がここで何が起こっているのか、私のアプリを元に戻す方法を説明できますか?壁にぶつかった。また、bundle exec
は私にとって問題の根本を解決しません。私は過去にそれをする必要がなかったし、今もまだ機能していません。
EDIT 2:bundle update
を見て、ワークフローを少し変更する必要があります。詳細については、 この質問 を参照してください。
元の答え
これは、Gemfile.lock
で言及されているバージョン番号よりも新しいrakeバージョンがgemsetにある場合に発生する単純な問題です。
エラーメッセージに記載されているように、bundle exec
を使用して動作させることができます。
このような場合の私の解決策は、他のgemバージョンとそれらの無限の依存関係をあまり心配していない場合にGemfile.lock
を削除することです。それ以外の場合は、Gemfile.lock
の1行を削除して、rakeのバージョンについて説明します。 bundle install
を実行すると、世界は再び幸せな場所になります。 (edit 2:これの代わりにbundle update --source
を実行します。これをしないでください。)
PS:さまざまなプロジェクトで gemsetsおよびrvmを使用してgemを整理 を使用してみてください。
編集
現在、インストールの管理に rbenv を使用することを好み、プロジェクトのすべてのgemはvendor/bundle
オプションを使用してbundle install --path
にあります。その後、bundle exec
ですべてのgemコマンドをスコープします。
したがって、Rails s
はbundle exec Rails s
になります。私の意見では、もう少しタイピングする方が、物事がきれいに保たれ、このような競合が起こらないことを意味する場合、より良いです。
rubygems-bundler
を使用してこれを解決できます。次のコマンドを実行します。
$ gem install rubygems-bundler
$ gem regenerate_binstubs
その後、レーキをもう一度試してください。
私のために働いた簡単な解決策は、単にbundle update rake
。
同様の問題があり、Gemfile.lock
から行を削除することに懐疑的でした。それはハックのようで、すべてのrakeコマンドにbundle exec
を追加するという不便もオプションではありませんでした。最初にGemfile.lock
にアクセスしてrake
のバージョンを確認しました(私の場合は11.1.2)。私はrake
をアンインストールしてこのバージョンをインストールすることを考えていました。 gem uninstall rake
を実行すると、次の出力が得られました。
アンインストールするgemを選択します。
- 熊手-10.5.0
- 熊手-11.1.1
- 熊手-11.1.2
- 熊手-11.2.2
- 熊手-11.3.0
- すべてのバージョン
rake-11.2.2
とrake-11.3.0
の両方をアンインストールしました。それは私の問題を修正しました
これを使って:
gem install rake -v "version-you-want"
次のコマンドを入力します。
bundle update rake
この解決策(私のために働いた)によると: https://stackoverflow.com/a/23668399/426009
rubygems-bundler
を使用して解決できます
端末に次のコマンドを入力します。
$ gem install rubygems-bundler
$ gem regenerate_binstubs
今すぐ動作するはずです
bundle update rake
は私にも役立ちます。
私のエラーはGem::LoadError: You have already activated rake 12.3.1, but your Gemfile requires rake 12.3.0. Prepending
bundle execto your command may solve this.
_Gemfile.lock
_に移動し、rakeファイルを見つけてバージョンを更新します。
私はこのエラーを受け取りました:
Gem :: LoadError:すでにrake 11.2.2をアクティブにしていますが、Gemfileにはrake 11.1.2が必要です。コマンドの前に_
bundle exec
_を追加すると、これを解決できる場合があります。
私がしたことは、_Gemfile.lock
_のrakeのバージョンをrake (11.1.2)
からrake (11.2.2)
に変更することでした。
その後はすべてうまくいきました。
私も同様の問題に直面しています。私の解決策は、ファイルGemfileでrakeバージョン "gem 'rake'、 '〜> 10.3'"の行を変更し、Gemfile.lockを削除し、 'bundler install'を実行すると、新しいGemfile.lockに新しいバージョン10.3.1が表示されます。その後、すべてがうまくなります。
以前の回答で述べたように、これはあなたのgemsetがあなたのGemfile.lock
が言及するバージョン番号より新しいrakeバージョンを持っているときに起こる簡単な問題です。
これをデバッグする最も簡単な方法は、bundle update
を実行することです。
他の方法としては、Gemfile.lock
を削除してbundle install
を実行するか、rakeバージョンに対応するGemfile.lock
の行を削除してbundle install
を試してください。ただし、これによりGemfileが破損する場合があります。最初の方法が最も安全で簡単であるため、私は最初の方法を好むでしょう。
Gemfile.lock
を削除してからbundle install
を実行する別の方法を試しました。その後、rake db:migrate
を実行します。そして、すべてが正常に動作します。
Remove Gemfile.lock
は悪い習慣ではないと思いますが、そうなるかもしれません。誰が知っている。
私は同じエラーが発生しました:
すでにrake 12.0.0をアクティベートしていますが、Gemfileにはrake 11.3.0が必要です。コマンドの前に「バンドルexec」を追加すると、これを解決できる場合があります。
bundle update
を実行して解決しました
これにより、レーキバージョンがアクティブ化されたレーキバージョンに更新され、すべてが機能しました。