2016-05-09 4 views
1

Ruby 2.2.4でアプリケーションが正常に動作していて、テストを実行すると "使用しているRubyのバージョンが古く/バグです"というエラーが表示されました。なぜRubyのバージョンをアップデートするにはbundlerをインストールする必要がありますか?

私はアプリケーションのデフォルトとしてRuby 2.3.0を更新して使用しました。その後、 "bundlerを見つけることができませんでした"というエラーが表示されました。

私はすでにバンドラを持っていましたが、どうして私のアプリケーションにバンドルを再インストールする必要があるのですか?

(私は上-Railsの-ルビーを学ぶので、初心者として私を扱いています。)

+0

RVMまたはrbenvのようなルビーバージョンマネージャを使用していますか? –

+0

はい私はrvm – Nirupa

+0

を使用しています。バンドラはデフォルトではRubyに付属していません。したがって、新しいRubyバージョンの上にインストールする必要があります。 – uday

答えて

3

コンピュータにインストールされているRubyの各コピーには、インストールされている宝石のセットがあります。宝石がRubyのインストール間で共有されない理由の1つは、コンパイルされたネイティブコードが含まれている宝石と、コンパイルされた出力がRubyのバージョンによって異なることです。

bundlerはRubyの一部ではないスタンドアロンの宝石ですので、新しいRubyをインストールするたびに、そのRubyにbundlerをインストールする必要があります。

これは、Rubyバージョンマネージャ(chruby、rbenv、rvmなど)を使用しているかどうかには関係ありません。新しいRubyをインストールする場合、インストールされている宝石のセットが必要です。

+0

これは私が以前に持っていたバンドラが古いバージョンに関連付けられていて、新しいバンドラが新しいバージョンに関連付けられているということですか? – Nirupa

+0

それは正しいです。 –

+0

私はそれを得る..ありがとうdave – Nirupa

1

を使用すると、RVMとルビーの新しいバージョンをインストールするたびに、それは彼らがgemsets呼んでラッパーを作成します。 GemsetsはRubyバージョン間で共有されないので、新しいRubyをインストールしたときには2.3.0がインストールされます。

この問題を解決するには、gem install bundlerを実行してbundlerをインストールするだけです。

これが完了したら、Rubyの新規インストールに使用できるようにする必要があります。

+0

私は再度バンドラーをインストールしましたが、唯一の懸念はなぜバンドラーを再インストールする必要があるかということでした。ありがとう:) – Nirupa

+0

rvmがrubyのさまざまなバージョンをどのように管理しているかのために。 Rubyのすべてのバージョンが使用する宝石を含む自己完結型になっています。 –

+0

素早く返信いただきありがとうございました! – Nirupa

1

私もこのような問題に直面していました。まず、選択したRVMバージョンでこれを実行します。

gem install bundle 

次に、あなたが実行する必要があります:

bundle install 

プロジェクトディレクトリで。

混乱があれば教えてください。

関連する問題