- はい。バンドラーを使用すると、痛みはありません。
- RVM環境で実行するだけです。特別な移植は必要ありません。
- $PATH、$GEM_HOME、$GEM_PATH などの環境変数を置き換えることにより、プロジェクトごとに個別の環境を提供することを目的としています。
長所:
- アプリケーションの要件を満たすために、さまざまな Ruby インタープリターをインストールできます。Rails 1.9.3 で新しいプロジェクトを開始しているが、まだ 1.8.7 と 1.9.1 を使用し、まだ移植されていない古い 2 つのプロジェクトに取り組んでいるとします。
- あなたの宝石は互いに競合しません。たとえば、サイクには特別なニーズがあります。使用する場合は、すべてのプロジェクトで使用する必要があります。しかし、RVM を使用すると、プロジェクトごとに異なる gemset を作成できます。
- gem ディレクトリを、読み取りと書き込みのアクセス権を取得したディレクトリに移動します。root 権限で gem をコンパイルすることを強制しないので、これは良いことです。
短所:
- Fish shell で RVM を長時間使用すると問題が発生しました。2 回、数週間後に RVM 全体がおかしくなり、壊れてしまいました。詳細には触れませんが、
~/.rvm
ディレクトリ全体を削除する必要があります。Bash では決して起こりませんでした。
RVM を使用した私の典型的なワークフローは次のとおりです。
ruby "1.9.3"
プロジェクトの Gemfiles に追加または同等のものを追加して、間違った Ruby バージョンで実行しないようにします。
- RVM をインストールし、必要な Ruby をインストールします
rvm install 1.9.3
。
- 与えられたプロジェクトでは、
rvm use 1.9.3
.
- 必要な gem をインストールします。
- 私のアプリを普通に使ってください。
Gemsets を使用していないことに注意してください。これは、短所 1 のためです。私は魚の殻が大好きで、これなしでは生きられません。バンドラーだけで、宝石を適切に管理できます (1 つの問題: 精神)。Gemsets を使用するには、3. と 4. の間に 2 つの追加の手順があります。
3a. 1 つ作成しますrvm gemset create gemset1
。
3b. それを使用してくださいrvm use gemset1@1.9.3
。
いくつかのレガシー プロジェクトで作業するときは、常に RVM を使用します。
適切なチュートリアルについては、このスクリーンキャストを参照してください: http://railscasts.com/episodes/200-rails-3-beta-and-rvm 。