1

RVMをインストールし、ドキュメントを読みましたが、よくわかりません。たとえば、(RVM をインストールする前に) find だけを作成して実行する Rails アプリケーションがあり、システム ruby​​ とシステム gem を使用しています。RVMをインストールした後:

  1. これらの gem を RVM に再インストールして、これらの gem を RVM の制御下に置く必要がありますか?
  2. システム gem の代わりに RVM gem を使用するようにアプリケーションを移植するにはどうすればよいですか?
  3. RVM は ruby​​ と gem のラッパーですか、それともこれらの ruby​​ と gem の別のリポジトリですか? したがって、RVM に gem をインストールすると、gem は RVM にのみ存在するか、RVM とシステム全体に存在するか、またはその逆になります。私は複製していますか、それとも RVM とシステムは gem/system 自体を同期していますか?

私はまだ RVM の商品と用途について完全に混乱しています。以前は機能していなかった以前のアプリケーションはすべて、さまざまなエラーで起動することさえありません。

私の環境:Mac OS X 10.8; レール 3.2.9; テキストメイト

4

1 に答える 1

2
  1. はい。バンドラーを使用すると、痛みはありません。
  2. RVM環境で実行するだけです。特別な移植は必要ありません。
  3. $PATH、$GEM_HOME、$GEM_PATH などの環境変数を置き換えることにより、プロジェクトごとに個別の環境を提供することを目的としています。

長所:

  1. アプリケーションの要件を満たすために、さまざまな Ruby インタープリターをインストールできます。Rails 1.9.3 で新しいプロジェクトを開始しているが、まだ 1.8.7 と 1.9.1 を使用し、まだ移植されていない古い 2 つのプロジェクトに取り組んでいるとします。
  2. あなたの宝石は互いに競合しません。たとえば、サイクには特別なニーズがあります。使用する場合は、すべてのプロジェクトで使用する必要があります。しかし、RVM を使用すると、プロジェクトごとに異なる gemset を作成できます。
  3. gem ディレクトリを、読み取りと書き込みのアクセス権を取得したディレクトリに移動します。root 権限で gem をコンパイルすることを強制しないので、これは良いことです。

短所:

  1. Fish shell で RVM を長時間使用すると問題が発生しました。2 回、数週間後に RVM 全体がおかしくなり、壊れてしまいました。詳細には触れませんが、~/.rvmディレクトリ全体を削除する必要があります。Bash では決して起こりませんでした。

RVM を使用した私の典型的なワークフローは次のとおりです。

  1. ruby "1.9.3"プロジェクトの Gemfiles に追加または同等のものを追加して、間違った Ruby バージョンで実行しないようにします。
  2. RVM をインストールし、必要な Ruby をインストールしますrvm install 1.9.3
  3. 与えられたプロジェクトでは、rvm use 1.9.3.
  4. 必要な gem をインストールします。
  5. 私のアプリを普通に使ってください。

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 。

于 2012-11-22T08:23:32.973 に答える