RVMを使用してローカルの Ruby インストールを管理し、Bundlerをアプリケーションの依存関係管理に使用しています。
アプリケーションごとに個別の RVM gemsetを使用することを推奨する人もいれば、その必要はないと考える人もいます。
では、Bundler を使用している場合、アプリケーションごとに個別の RVM gemset を使用する利点は何ですか? そうしないことのリスクは何ですか?
Rails 2 を使用している場合、rvm があると便利であることがわかりました。RVM は、古いコードを含むアプリで作業する必要がある場合に最適です。Rails 2 は Gemfile を使用しないため、動作bundle exec
しません。RVM を使用すると、そのプロジェクトに適した gem バージョンを簡単に維持できます。また、新しいバージョンの Rails に切り替えて、Gemfile を使用してバージョンを指定することもできます。異なるバージョンの gem を使用するアプリが複数あるが、同じバージョンの ruby を使用している場合、ほとんどの gem を共有し、異なる場所で Gemfile に指定すると便利です。
ケース依存のようなものだと思います。2 つのアプリの間に大量のバージョンの問題があり、Gemfile を常に修正してそれらを正しく保つのが煩わしい場合は、別の gemset を使用してください。十分な共通点がある場合は、同じ gemset を使用するのが理にかなっているかもしれません
次の理由により、バンドラーに加えてジェムセットを使用します。
bundle exec
(これは binstubs では廃止されました)それらを使用する理由はおそらく他にもありますが、私は一般的にサンドボックスのアイデアが好きです!
プロジェクトの Gemfile と併せて、fast/globalcache_comment_test.sh にある rvm-test の形式の「globalcache」ドキュメントも参照してください。
これにより、rubygems.org へのネットワーク トラフィックも削減されます。グローバルの初期ロードアウト。
RVM gemset を使用すると、バンドラーをロードせずに gem を分離できます。これはより高速で、gem のロードがより簡単になります。
プロジェクトをヘルパー gem ( など) から分離するために、gemset を使用する必要がありますgist
。
しかし、gemset が役に立たないと判断した場合は、RVM に gemset を完全に無視するように指示できます。
echo "export rvm_ignore_gemsets_flag=1" >> ~/.rvmrc