41

RVM を更新したところ、古い の代わりに.rvmrc自動作成され.ruby-gemset.ruby-version.

私はいつも.rvmrcのような内容のファイルを持っていましたrvm use --create default@project_name。ただし、 ..ruby-versionではなく、実行している特定の Ruby バージョンが含まれていdefaultます。これをチェックインするのをためらっています。

また、ポッドキャストで誰かが、.ruby-gemsetgemset に名前を付ける方法について他の人が独自の好みを持っている可能性があるため、チェックインするべきではないと言っているのを聞きました。

いつチェックインすべきか、またはすべきでない.ruby-gemset.ruby-version?

具体的には:

  • トレードオフにはどのようなものがありますか?
  • プロジェクトのタイプは決定にどのように影響しますか (アプリケーションと gem など)?
  • それらをチェックインする必要がある場合、プロジェクトのタイプはこれらのファイルに何を入れる必要があるかにどのように影響しますか?

回答では、rvm、rbenv などのツールの作成者からの引用を歓迎します。

4

3 に答える 3

5

チェックイン中ですか.rvmrc.ruby-versionそれとも.ruby-gemset?

為に:

  • 1.8プロジェクトにはさまざまなブランチがあります (たとえば、 Rubyをサポートする RubyGems プロジェクト1.92.0バージョン)。開発者がブランチを切り替えるときにこれらのファイルを編集し続ける必要がないように、このファイルをチェックインすることをお勧めします。ただし、同じことがアプリケーションには当てはまりません。ほとんどの場合、1 つの Ruby バージョンだけで作業することになります。

  • rake spec上記と同じケースですが、チェックインごとに自動的に実行される CI サーバー (TeamCity/Jenkins/... など) を実行しているとします。ブランチごとに個別のビルド パイプラインを作成するためだけに、ブランチごとに個別のビルド パイプラインを作成する必要はありませんrvm use ...。ブランチに応じてRubyバージョンを自動的に選択したいだけです

  • 環境とすべての開発者を厳密に制御できます。同じルビーとジェムセットを使用する必要がないか、指示する

  • Phusion Passenger または Capistrano を使用している場合、.rvmrcファイルが自動的に読み取られ、展開/ホスティングに適した Ruby が選択されます

RVM のベスト プラクティスも参照してください。

に対して:

  • RVM で独自の Ruby をコンパイルし、いくつかの実験的なパッチを適用して、カスタム名を付けることができます。

    例えばrvm install 1.9.3 --patch railsexpress,falcon --name ruby-1.9.3-perf

    上記の例では、Ruby 1.9.3 をいくつかの優れたスピードアップ パッチと共にインストールしました (ところで、それらはすばらしいものです) が、それを と呼ぶのではなく1.9.3、自分の名前で呼んでいます。これが必要なときはいつでも言いrvm use ruby-1.9.3-perfます。この場合、プロジェクトに独自の が.ruby-versionあると、環境が台無しになります。私のプロジェクトでは、これらのパッチは標準であり、積極的に推奨しています。しかし、開発者が結果としてコンパイルされた Ruby にどのように名前を付けるかは開発者次第です。

  • 同様に、人々はさまざまなジェムセットを使用しています。gemset をまったく使用しないものもあります。いくつかは、異なる (しかし類似した) ruby​​ プロジェクトと同じ gemset を共有しています。これを考えると、シングル.ruby-gemsetもすべての人に適しているわけではありません

  • あなたのプロジェクトには、単に1.9.3. 開発者は最初に最新の Ruby 1.9.3-p329 をインストールしました。しかし、後で RVM/Rbenv を更新するだけです (他のプロジェクトに取り組んでいるため)。RVM/Rbenv に登録されている Ruby の最新バージョンが からに変更されたばかりで、インストールされていないと表示されるため、それら.rvmrcまたは単に壊れます。このシナリオは頻繁に発生する傾向があります。.ruby-versionruby-1.9.3-p329.ruby-1.9.3-p362ruby-1.9.3-p362

Ruby バージョン (パッチ レベルを含む) の適切なフル ネームを指定する限り、問題はありません。あなたのプロジェクトが言っているとしましょ.ruby-versionruby-1.9.3-p329。これらすべてのパッチを使用して独自の Ruby をコンパイルするのは簡単ruby-1.9.3-329ですが、設定ファイルが標準の Ruby の代わりにこの Ruby を取得するようにカスタム名を付けるだけです。

于 2013-05-24T12:22:43.873 に答える
0

私は含めます.ruby-version-あなたとプロジェクトに取り組んでいる他の人は、サーバーとともに、同じバージョンのRubyを使用する必要があります。

.ruby-gemset……あなた次第だと思います。

于 2013-04-18T15:36:39.600 に答える