2010-12-19 11 views
9

しばらくの間、キュウリを問題なく使用していましたが、 (宝石のクリーンアップを含む)は、本日をいじって、私は「キュウリ機能」を実行するたびに私はRails 3/Cucumberの問題: "...既にビルダー3.0.0を有効にしていますが、Gemfileにビルダー2.1.2が必要です"

次のエラーを取得するあなたは既にビルダー 3.0.0を有効にしているが、あなたのGemfileはビルダー2.1.2が必要です。 execのバンドルを使用することを検討してください。 (Gem :: LoadError)

私のマシン上で複数のレールプロジェクトで試してみました。すべてが有効になっています。この方法にどう対処するかは不明ですが、2.1.2 &をgemfileに指定してインストールしようとしましたが、うれしさはありませんでした。

"bundle exec cucumber features"は機能しますが、自動テストでうまく動作しないようです。

私が何をしているか(さらに改善する方法は何か)についてのご意見は、大変感謝しています。

答えて

17

あなたの宝石のクリーンアップの後、ビルダーが削除され、最新バージョン(3.0.0)がインストールされたようです。しかし、rails3や他の宝石のいくつかは〜2.1.2を必要とします。これはビルダーのバージョンが2.1.2以上で、< 3.0.0であることを意味します。

gem uninstall builder 

使用sudo必要に応じて:だから、あなたのシステムの宝石から3.0.0を削除する必要があります。次に、あなたのプロジェクトで

bundle install 

注:あなたがあなたのGemfileにビルダー手動で入れていた場合、あなたは〜> 2.1.2を入れていることを確認してください。

gem "builder", "~> 2.1.2" 

私はあなたがプロジェクトごとに別々の場所で宝石を保存することをお勧めしますでしょう:それ以外の場合バンドラは、レールや他の人気の宝石の現在のバージョンと互換性がありません最新の安定版(3.0.0)をインストールしようとします。

bundle install --path .gems 

この場合、システムの宝石ですべてを行うことができ、今のような状況に陥るリスクを軽減できます。

6

もっと簡単な方法を使用してみませんか?

bundle exec cucumber features

私はビルダーや他のいくつかの宝石と同じ問題を抱えていました。 "宝石unistall"方法を使用して試してみましたが、私は新しい宝石が必要だと言ってエラーが発生しました。だから私はデッドロック状態にあった。それが働いていた上記のコマンドで

...

+0

これはやや良い答えのようです...それはそう1、 'Gemfile.lock'のキュウリは、本質的に認識させるために、しかし、より良いではないでしょう他のコマンドラインを使用することができます*と* 3.0.0がシステムにインストールされていますか?どこかで 'bundler/setup''をrequireすることは適切な方法です - http://gembundler.com/rationale.html#setting-up-your-application-to-use-bundler - - 誰かがhttps://github.com/aslakhellesoy/cucumberへのパッチを提出したい場合は、それをしてください。 :)私がやっている何かのために引っ張り要求を提出する準備ができているときにそれが完了していないなら、私は行います。 – lindes

関連する問題