web-dev-qa-db-ja.com

Gemfileが必要とするものとは異なる既にアクティブ化されたrakeバージョンは、rakeコマンドを防ぎます

ここに私のエラーがあります:

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は私にとって問題の根本を解決しません。私は過去にそれをする必要がなかったし、今もまだ機能していません。

33
Aaron

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 sbundle exec Rails sになります。私の意見では、もう少しタイピングする方が、物事がきれいに保たれ、このような競合が起こらないことを意味する場合、より良いです。

36
manu29.d

rubygems-bundlerを使用してこれを解決できます。次のコマンドを実行します。

$ gem install rubygems-bundler

$ gem regenerate_binstubs

その後、レーキをもう一度試してください。

31
Benjamin Dunphy

私のために働いた簡単な解決策は、単にbundle update rake

29
philoye

同様の問題があり、Gemfile.lockから行を削除することに懐疑的でした。それはハックのようで、すべてのrakeコマンドにbundle execを追加するという不便もオプションではありませんでした。最初にGemfile.lockにアクセスしてrakeのバージョンを確認しました(私の場合は11.1.2)。私はrakeをアンインストールしてこのバージョンをインストールすることを考えていました。 gem uninstall rakeを実行すると、次の出力が得られました。

アンインストールするgemを選択します。

  1. 熊手-10.5.0
  2. 熊手-11.1.1
  3. 熊手-11.1.2
  4. 熊手-11.2.2
  5. 熊手-11.3.0
  6. すべてのバージョン

rake-11.2.2rake-11.3.0の両方をアンインストールしました。それは私の問題を修正しました

18
Abass Sesay

これを使って:

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

次のコマンドを入力します。

bundle update rake
2
Oleg Dikusar

この解決策(私のために働いた)によると: https://stackoverflow.com/a/23668399/426009

rubygems-bundlerを使用して解決できます

端末に次のコマンドを入力します。

$ gem install rubygems-bundler
$ gem regenerate_binstubs

今すぐ動作するはずです

1

bundle update rakeは私にも役立ちます。

私のエラーは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.

1
gsumk

_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)に変更することでした。

その後はすべてうまくいきました。

0
SJ LaPorte

私も同様の問題に直面しています。私の解決策は、ファイルGemfileでrakeバージョン "gem 'rake'、 '〜> 10.3'"の行を変更し、Gemfile.lockを削除し、 'bundler install'を実行すると、新しいGemfile.lockに新しいバージョン10.3.1が表示されます。その後、すべてがうまくなります。

0
rookie jack

以前の回答で述べたように、これはあなたのgemsetがあなたのGemfile.lockが言及するバージョン番号より新しいrakeバージョンを持っているときに起こる簡単な問題です。

これをデバッグする最も簡単な方法は、bundle updateを実行することです。

他の方法としては、Gemfile.lockを削除してbundle installを実行するか、rakeバージョンに対応するGemfile.lockの行を削除してbundle installを試してください。ただし、これによりGemfileが破損する場合があります。最初の方法が最も安全で簡単であるため、私は最初の方法を好むでしょう。

0
Parardha Kumar

Gemfile.lockを削除してからbundle installを実行する別の方法を試しました。その後、rake db:migrateを実行します。そして、すべてが正常に動作します。

Remove Gemfile.lockは悪い習慣ではないと思いますが、そうなるかもしれません。誰が知っている。

0
egyamado

私は同じエラーが発生しました:

すでにrake 12.0.0をアクティベートしていますが、Gemfileにはrake 11.3.0が必要です。コマンドの前に「バンドルexec」を追加すると、これを解決できる場合があります。

bundle updateを実行して解決しました

これにより、レーキバージョンがアクティブ化されたレーキバージョンに更新され、すべてが機能しました。

0
bright