2011-11-12 9 views
15

私はすくいコマンド(すなわちrake routes)を実行するたびに、私はこのエラーを取得する:私はbundle exec rake routesを実行する場合私の環境でbundle execを実行する必要があるのはなぜですか?

You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.9.2. Using bundle exec may solve this. 

それが動作します。

bundle exec rake routesを実行しなくても簡単にrake routesになりたいと思っています。

私は同様のエラーで他の質問を見て、さまざまな解決策(例えばbundle updateの実行中)を無駄に試しました。

また、私のgemfileに私がgem 'rake', '0.9.2'

任意の提案を指定しましたか?

+0

クイックアップデート。最近、 'bundle exec'を使う必要性に関するRailsチュートリアルからのこの説明を発見しました:3.2.1節で簡単に述べたように、rakeやrspecのようなコマンドにbundle execを付ける必要があります。 gemfileで指定されたgem環境にインストールされます(技術的な理由から、railsコマンド自体は唯一の例外です)。 "さらに、RVMのバージョン番号が1.11.x以上であれば、インストールされたgemは自動的に正しいBundler環境 "となり、' bundle exec'プレフィックスは必要ありません。 – mmichael

+0

説明へのリンク:http://ruby.railstutorial.org/chapters/static-pages#sec-eliminating_bundle_exec – mmichael

答えて

8

は、実行しよう:

gem list 

おそらく、熊手のためにインストールされたバージョンのカップルが表示されます。ちなみに、bundle execです。レールアプリケーションのコンテキストでコードを実行するにはです。詳しくは、thisを参照してください。したがって、lessを入力するためにエイリアスを使用することができます。

+2

また、 'export RUBYOPT = -rbundler/setup'を使ってシェルセッションを開始することもできます。 'bundle exec'は行います。 – yfeldblum

+0

これは非常に参考になりました。ありがとうございました。 – mmichael

+1

それは私に与えられる:ruby:そのようなファイルがロードされない - bundler/setup(LoadError) –

2

rvmを使用している場合。 @lucapetteが言ったように、あなたはおそらく、熊手の複数のバージョンを持って、

rvm gem list 
2

次試すことができます。 0.9.2を使用したいと仮定した場合、0.9.2.2のバージョンを削除して警告を取り除き、バンドルインストールを実行して、必要なバージョンのすべての正しいgemバージョンがあることを確認します(0.9.2、私の例では0.8.7)。あなたのgemfileで宝石のいくつかは、インストールされているものにレーキの古いバージョンを必要とする場合

$ gem list 

*** LOCAL GEMS *** 

... 
rake (0.9.2.2, 0.8.7) 
... 

$ gem uninstall rake 

Select gem to uninstall: 
1. rake-0.8.7 
2. rake-0.9.2.2 
3. All versions 
> 2 

You have requested to uninstall the gem: 
     rake-0.9.2.2 
addressable-2.2.6 depends on [rake (>= 0.7.3)] 
... 
If you remove this gems, one or more dependencies will not be met. 
Continue with Uninstall? [Yn] Y 
Successfully uninstalled rake-0.9.2.2 
INFO: gem "0.9.2.2" is not installed 

$ bundle install 
0

あなたは、このメッセージが表示されることがあります

は、ここでの手順です。おそらくあなたはレーキを更新しました。あなたは頻繁にあなたの宝石を更新することによってそれを修正することができます。ファイル名を指定して実行:

bundle update 

これはあなたのgemfileの中で最も最近の宝石を使用して、あなたのバンドルを更新します。これにより、レーキの非互換性が修正される可能性があります。

関連する問題