2010-12-02 3 views
11

私の宝石を更新しました。私は、サンプルのRailsアプリを作成し、私のGemfileに次のように持っていました:rspecを使用しようとしましたが、rspec-core 2.2.1が有効になっていて、私のGemfileがrspec-core 2.1.0を必要とするエラーが発生しました。

source 'http://rubygems.org' 

gem 'rails', '3.0.3' 
gem 'sqlite3-ruby', :require => 'sqlite3' 

group :development do 
    gem 'rspec-rails' 
end 

group :test do 
    gem 'rspec' 
    gem 'webrat', '0.7.1' 
end 

しかし、私は「RSpecのスペックを/」を実行したときに、私は次のメッセージが出ます:

/home/jeff/.rvm/gems/ruby-1.9.2-p0/gems/bundler-1.0.7/lib/bundler/runtime.rb:27:in `block in setup': 
You have already activated rspec-core 2.2.1, but your Gemfile requires rspec-core 2.1.0. 
Consider using bundle exec. (Gem::LoadError) 

答えて

9

bundle update rspecを使用してみてくださいをおよびbundle update rspec-rails。ルートディレクトリにあるGemfile.lockファイルはおそらく、各宝石のバージョン番号を指定しています。

0

ここでのRailsのnoob ...私はマイケル・ハートルの華麗なチュートリアル... layouts

で立ち往生し、次のよ無駄にthis post about rspec/webrat errorsで述べたようにRSpecの& webratバージョンを変更しようとしました。

rspec v2.1.0の場合、@ user338413と同じエラーが表示されます。私はまだしたいと思いますが、解決のUbuntuに10.04

ランニング2.2.1


のdevのマシンを返す-v

RSpecのは......、RSpecの2.2.0 + webrat 0.7.1で動作します知っている理由

2

私は今でも同じ問題を抱えています。しようとそれを修正する:

sudo gem uninstall rspec-core -v 2.2.1 
bundle update rspec-core 

あなたは(RSpecの、RSpecのレールなどのような)他の依存宝石のためにそれを行う必要があるかもしれません。候補者を確認するためにコマンドを使用します。

gem list rspec 
+0

これは修正されました。私の問題は、ローカルの宝石としてrspecを2回インストールしたことです.1回はバージョン番号を指定せずに、もう1回はバージョン番号を指定するだけでした。 バージョン番号でインストールされたRspecは、バージョン番号なしでインストールされたRspecよりも低く、rspec-support gemを必要以上のバージョン番号でロードしようとしました。 TL; DR:重複した宝石を削除する - 宝石リストrspecを実行して重複するものを確認し、これらのバージョンを削除します。 – Tebbers

7

サム・リッチーさんとアレクセイのソリューションの組み合わせは、ここで私を助けました。アレクセイが言うようにバージョンが高すぎるかを確認するためにこれを使用し、

bundle update rspec 
bundle update rspec-rails 
sudo gem uninstall rspec-mocks 
sudo gem uninstall rspec-expectations 
sudo gem uninstall rspec-core 

(何も入力されていない場合のバージョンを要求します)

:最後に、私はしなければならなかった

gem list rspec 

(だろう。あなたのアレクセイのための投票が、どうやら私は、スタック上の「評判」を十分に持っていない)

0

この簡単に解決されています

bundle exec rspec 

は、システム全体の設定を無視して、プロジェクトに必要なgemバージョンを使用するように強制します。

0

Gemfile.lockのバージョン番号を2.1.0から2.2.1に変更します。

関連する問題