2017-08-01 2 views
1

新しいプロジェクトでは、Rubyバージョン2.5.0を使用することを余儀なくされています。なぜ他のバージョンのRubyも使用できないのですか?rbenvとbundlerをプロジェクトでバージョンを衝突させずに一緒に使うにはどうすればいいですか?

私はrbenv local 2.4.0とルビーのバージョンを選択しましたが、私はruby -vを入力すると、私が読んで:私はRubyのバージョンはRubyの2.5.0であることをbundled envで確認

ruby 2.5.0dev (2017-08-01 trunk 59456) [x86_64-darwin16] 

私はルビー2.4.0を必要とする私のプロジェクトを設定し、bundleを実行しているとき、私はこのメッセージを参照してください。

Your Ruby version is 2.5.0, but your Gemfile specified 2.4.0 

bundleは私のプロジェクトの依存関係をインストールすることができますが、プロジェクトはとルビーのバージョンを指定した場合にのみ2.5.0。

ここでは何が起こっていますか? rbenvとbundlerを使って異なるRubyバージョンをどのように管理し、構成しますか?それぞれのプロジェクトにそれぞれ対応するルビーバージョンの宝石をインストールするために、異なるバージョンのbundlerを用意していますか? gem cliで何かが見つからないのですが、rubyのバージョンが2.5.0に設定されているバンドルラーだけをインストールするようです。

+0

「rbenv global 2.4.0 && rbenv rehash && bundle」と試してみてください。 –

+0

あなたの最初の質問はあなたの質問の残りの部分と根本的に異なります。それは別の質問でなければならず、ここからその部分を削除する必要があります。 – sawa

答えて

0

Rbenvとしてrvmは、グローバル設定のルビーバージョンを提供します。それ以外の場合は、コンソールのすべてのプロジェクトで毎回rubyのバージョンを指定する必要があります。

$ ruby -v 
ruby 2.5.0(...) 

$ rbenv local 2.4.0 
$ ruby -v 
ruby 2.4.0(...) 

Read more about specify ruby version in rbevn

これはrbenvを再インストールしようと動作しない場合。システムに関するこの問題の回答を見つける前に、rvmを使用することができます。

したがって、2つのコンソールタブを開き、それぞれに2つの異なるルビーバージョンを指定できます。それはうまくいくだろう。 ユーザーがherokuまたはcapistranoでプロジェクトを展開すると、gemfileのルビバージョンも無視されます。 capistranoでは、capfileまたはdeploy.rbにrubyバージョンを指定する必要があります。これは、プロジェクトを再デプロイしたりサーバを再起動するたびに、rbenvまたはrvmでrubyバージョンを設定する必要があります。

関連する問題