2012-04-17 3 views
1

私はRuby 1.9.2を使っていたRails 3.0.0プロジェクトを持っています。今、私は現在のRVMを新しいコンピュータ上でそれを実行しようとしたこと、それは言うだろう:Railsの場合、Rails 3.0.0を使用するプロジェクトがあれば、それはbundler 1.0.0を探しますが、そこにありますが、Railsサーバーは実行されません。

$ rails s 
/Users/michael/.rvm/gems/[email protected]/gems/bundler-1.1.3/lib/bundler/resolver.rb:129:in `block in resolve': Bundler could not find compatible versions for gem "bundler": (Bundler::VersionConflict) 
    In Gemfile: 
    rails (= 3.0.0) ruby depends on 
     bundler (~> 1.0.0) ruby 

    Current Bundler version: 
    bundler (1.1.3) 

を私gem list、私は

が表示されますときように、私はすでに

gem install rails -v 3.0.0 
gem install bundler -v 1.0.0 
gem install bundler -v 1.0.2 

を使用

bundler (1.1.3, 1.0.22, 1.0.0) 
rails (3.0.0) 

Rails 3.0.0にはバンドル1.0.0が必要であり、そこにはいないと不平を言っています。プロジェクトをもう一度実行するには?

更新:

source 'http://rubygems.org' 

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

アップデート2:私のGemfileはほとんど除き、コメントである私はbundle checkを実行する場合:

$ bundle check 
Your Gemfile's dependencies could not be satisfied 
Install missing gems with `bundle install` 

$ bundle install 
Fetching gem metadata from http://rubygems.org/......... 
Bundler could not find compatible versions for gem "bundler": 
    In Gemfile: 
    rails (= 3.0.0) ruby depends on 
     bundler (~> 1.0.0) ruby 

    Current Bundler version: 
    bundler (1.1.3) 

This Gemfile requires a different version of Bundler. 
Perhaps you need to update Bundler by running `gem install bundler`? 
+0

あなたのGemfileはどのように見えますか? –

+0

アップデート –

+0

の 'bundle check'を実行し、出力として表示してください。 – jdoe

答えて

1

問題は、バンドラの3つのバージョン(1.1.3を、持っているということです1.0.22、1.0.0)。あなたのアプリは1.0.0しか必要としません。そして、あなたがサーバを走らせるとき、それは1.1.3を使います。その後

このコマンドにより、だから、最初のアンインストール2バンドラ

 gem uninstall bundler -v=1.1.3 

     gem uninstall bundler -v=1.0.22 

にそれは必ずあなたはバンドラコンテキスト内レールと熊手を実行する必要があるかもしれません

+1

と表示されます。 ' INFO:gem "bundlerがインストールされていません...そして新しいgemsetとgemのリストを作成するとバンドル1.1.3が表示されますが、アンインストール行を使用すると、バンドラがインストールされていない –

1

....動作するサーバーを実行します。

bundle exec rails s 

あなたのすくいコマンドでのDitt、例えば、

bundle exec rake -T 

Here's a SO thread詳細記事へのリンクがあります。また、迷惑をかけると周りを回る方法についてのチャットがたくさんあります。個人的には、とにかく私の最も一般的なコマンドのエイリアスなので、気づかない。

1

gemfileにBundlerを追加するだけで、そのプロジェクトに使用するバージョンのbundlerをロックすることができます。

gem 'bundler', '1.1.0' 

あなたがこれを行う場合、あなたは別の依存関係を持つ他のプロジェクトで使用することができるバンドラーの他のバージョンをアンインストールする必要はありません。

railsコマンドにはbundle execを使用する必要はありません。これは、Railsがバンドル対応であり、常に現在のバンドルのコンテキストで実行されるためです。非Railsコマンドには `bundle exec 'が必要です。

関連する問題