私の質問は既にこちらにお願いしていますが、その理由を理解しようとしていますそれを回避する方法とは対照的です。
私が得たエラーは、
You have already activated rspec-core 2.7.1, but your Gemfile requires rspec-core 2.6.4. Using bundle exec may solve this. (Gem::LoadError)
今私は "mpapis-bundler"のようなさまざまなソリューションを提供していますが、 "bundle exec"の省略形を作成していますが、
$bundle install --binstubs
〜のためだった。
具体的には、rspec-railsのgemfileにバージョン番号が記載されていないため、なぜこの非互換性がありますか?試してみると、私のエラーも発生しました
$rake db:migrate
それを教えて
You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.9.2. Consider using bundle exec.
説明をいただければ幸いです。
EDIT:
All my gems for my app are in a gemset, and I have updated my gems again. Should an update not make sure that related gems are compatible?
これはあなたのシステムに、Railsアプリケーションのものよりも新しい最近の宝石をインストールするときに起こります。
BundlerはあなたのGemfileの状態に固執する必要があることを単にouに伝えます。
これが実行の目的です。
bundle exec rake db:migrate
-> running the very same rake version your Gemfile provides.
gemfileから宝石を更新することについては、次のようにしてください:
bundle update
この種の退屈なものを避ける最も簡単な方法は、宝石を作成して宝石を孤立させることです。私はこの目的のためにRVMを使用します。
レーキバージョン0.9.2.2に関して、どちらかの方法は、プロジェクト用の新しいgemsetを作成し、gemfileと一致するgemバージョンを維持することです。
たとえば、バージョン0.9.2と0.9.2.2を含む2つのレーキ・ジェムがある場合、レイク・バージョン '0.9.2'を指定してインストールしますが、ブーミング・エラー以外のタスクは実行しません
'あなたは既にRAKE 0.9.2.2を有効にしていますが、GemfileにはRAKE 0.9.2が必要です。 bundle execを使用すると、これを解決できます。
Gemfile.lockにgemfile.lockをロックし、rake 0.9.2を選択するバンドルのインストールを期待していますが、デフォルトでrake 0.9.2.2が有効になっているgemsetを参照しています。
バンドルインストールの目的を、レールブックを使ったアジャイルWeb開発から思い出させるだけで、
'bundle installはGemfile.lockを開始点として使用し、 このファイルで指定されているさまざまな宝石のバージョン。このため、 このファイルがあなたのバージョン管理システムにチェックインされることが重要です あなたの同僚と配備ターゲットはすべて、 まったく同じ構成。
そのようには機能しませんが、
rake 0.9.2.2をアンインストールしてrake 0.9.2を使用するか、またはbundle update rakeを使用して、Gemfile.lockのレーキバージョンを0.9.2.2に更新します