5

RVMを使用してローカルの Ruby インストールを管理し、Bundlerをアプリケーションの依存関係管理に使用しています。

アプリケーションごとに個別の RVM gemsetを使用することを推奨する人もいれば、その必要はないと考える人もいます。

では、Bundler を使用している場合、アプリケーションごとに個別の RVM gemset を使用する利点は何ですか? そうしないことのリスクは何ですか?

4

4 に答える 4

2

Rails 2 を使用している場合、rvm があると便利であることがわかりました。RVM は、古いコードを含むアプリで作業する必要がある場合に最適です。Rails 2 は Gemfile を使用しないため、動作bundle execしません。RVM を使用すると、そのプロジェクトに適した gem バージョンを簡単に維持できます。また、新しいバージョンの Rails に切り替えて、Gemfile を使用してバージョンを指定することもできます。異なるバージョンの gem を使用するアプリが複数あるが、同じバージョンの ruby​​ を使用している場合、ほとんどの gem を共有し、異なる場所で Gemfile に指定すると便利です。

ケース依存のようなものだと思います。2 つのアプリの間に大量のバージョンの問題があり、Gemfile を常に修正してそれらを正しく保つのが煩わしい場合は、別の gemset を使用してください。十分な共通点がある場合は、同じ gemset を使用するのが理にかなっているかもしれません

于 2012-06-19T15:58:33.953 に答える
2

次の理由により、バンドラーに加えてジェムセットを使用します。

  • たまにすべてをドロップするのは簡単です(インストールした宝石をいじるのが好きです)
  • 呼び出す必要はありませんbundle exec(これは binstubs では廃止されました)
  • 解析する必要がある gem-spec が少なくなるため、ロードが速くなります
  • 配布が簡単(仲間にコピー)

それらを使用する理由はおそらく他にもありますが、私は一般的にサンドボックスのアイデアが好きです!

于 2012-06-18T18:35:16.063 に答える
1

プロジェクトの Gemfile と併せて、fast/globalcache_comment_test.sh にある rvm-test の形式の「globalcache」ドキュメントも参照してください。

これにより、rubygems.org へのネットワーク トラフィックも削減されます。グローバルの初期ロードアウト。

于 2012-06-19T17:11:38.777 に答える
1

RVM gemset を使用すると、バンドラーをロードせずに gem を分離できます。これはより高速で、gem のロードがより簡単になります。

プロジェクトをヘルパー gem ( など) から分離するために、gemset を使用する必要がありますgist

しかし、gemset が役に立たないと判断した場合は、RVM に gemset を完全に無視するように指示できます。

echo "export rvm_ignore_gemsets_flag=1" >> ~/.rvmrc
于 2012-06-18T16:20:36.790 に答える