2016-05-04 9 views
4

私はrbenvを使用しますが、他のチームメンバーはRVMを使用しています。動的Gemfile rbenvとRVMのRubyバージョン

私はこれをやってきたGe​​mfileでruby 2.x.xバージョン指定:

ruby ENV['RBENV_VERSION'] || '2.2.4' 

私はrbenvから使用している現在のバージョンをつかんでGemfileのためにそれを使用しています。ただし、プロダクションでは、それは存在せず、||の後に指定されたバージョンを使用します。

私はRVMでこれを行うために同様の方法を探していました。究極の目標は、すべての開発者がRubyのローカルバージョンを使用できるGemfileを設定し、具体的なバージョンをプロダクション用に指定することでした。

これにより、開発者は、プロジェクトにrbenvまたはRVMを使用できるだけでなく、インストールされていないバージョンのプロジェクトで作業するたびに新しいバージョンのRubyをインストールする必要がなくなります。

私にRVMのENV['RBENV_VERSION']と同等のものを与えるRVMユーザーはいますか?私はたくさんの検索をしていて、好きなものは見つけられませんでした。

私が見ることができる最良の答えは、RVMユーザーがチームによって合意された環境変数名を使ってバージョンを指定し、 "Specifying a Ruby version via the environment"のように使用し、その代わりにGemfileで使用することです。任意のRVMインスタンスから現在のRubyのバージョンを取得する

+0

特定のルビバージョン2.2.4は、開発用ではなく、生産用であることを考えると、最初はなぜあなたの 'Gemfile'にありますか?'config/deploy.rb'のような、もっと賢明な場所に置くのはいかがですか? –

+0

私はHerokuにデプロイしていて、ドキュメントの指示どおりに、[こちら](https://devcenter.heroku.com/articles/ruby-versions)に示されているGemfileにルビーバージョンを入れています。バージョンを別の場所に置いても、それは私の質問には答えません。それは問題を別のファイルに移動するだけです:) – bideowego

+0

ああ、あなたの問題を今理解しています。 (BTW、私の提案は質問に答えていました。問題はまだ開発とプロダクションの設定を分けることです。)https://github.com/bkeepers/dotenvを使って開発用ルビーのバージョンを保存する方法はありますか?それは働くだろうか? –

答えて

1

、あなたは、このメソッドを使用して照会できます。

rvm list default string | sed s/ruby-// 

また、現在のバージョン

rvm-prompt i v | sed s/ruby-// 

を照会するためにRVMプロンプトツールを使用することができますまたは

rvm-prompt i v p g | sed s/ruby-// 

どれくらい詳細を許可しますか。 rvm-promptコマンドのドキュメントは「rvm-prompt」にあります。

ユーザーがRVMをデフォルトのままにすると、そのバージョンが表示されますが、RVMでRubyのバージョンが変更されている場合は、現在選択されているバージョンが表示されます。

することはできチェーンこのようなENV['RBENV_VERSION']が使用されていることをどのような方法で:

`rvm list default string | sed s/ruby-//` || 2.2.4 

RVMは、バージョンが表示されない場合、これは現在のRVMのRubyバージョンまたは2.2.4を選択します。

RVMが存在する必要があります(または、少なくとも実行可能ファイルとしてrvmという名前が必要です)。そうでない場合は、それが存在せず、正常に機能しなくなる状況を処理するために、スクリプトラッパーを追加する必要があります。

個人的には、プロダクション環境を含むあらゆる場所で利用できることが大好きです。これは、テキストエディタの前であっても、新しいOSインスタンスにインストールするのが最初のことです.2番目の方法は、RVMに適切なRubyバージョンをインストールすることです。

+0

本当にありがとう、私はあなたに本当に多くの言葉で "私は間違っている、代わりにこれをしている"と言っているのではなく、これはしばらくの間私の好奇心でした。 – bideowego

+0

@bideowegoねえ、私はそれが大きな疑問だったと思って、私はその過程でいくつか新しいことを学びました!これはあなたが探していたものなのですか、それとも答えられない部分がありましたか? –

+0

はい@MichaelGaskell、私はこれが私が探していたものだと信じています。 RVMの基本的な方法は、Gemfileで使用する数値文字列 '2.x.x 'を取得することです。すべてのプロジェクトにRubyのバージョンをインストールすることができます。しかし、時には、1つか2つのプロジェクトのためだけにパッチ・バージョンをインストールしたくない場合もあります。さまざまなRubyバージョンを持つチームで作業するという複雑さとそれ以前のプレスト!それがこの質問の由来です:D – bideowego

関連する問題