誤解
RVM は「Ruby enVironment Manager」を意味しますが、RVM を使用できることの範囲や、開発およびデプロイメントのエコシステムへの適応度について不明瞭な人が多くいます。このページはこうした誤解を一掃し、当社の見解を提供することを目的としています。ちなみに、RVM はもともと「Ruby バージョンマネージャー」を表していましたが、Ruby 自体だけではなく、それ以上のものを扱うようになったため、「Ruby enVironment Manager」に変更されました。
誤解 #1: RVM は Ruby バージョンの管理にしか使えない
RVM は「Ruby enVironment Manager」を表していますが、それ以上の機能を備えています。実際、RVM は Ruby 開発で一般的に関連付けられている多くの一般的なタスクを処理するためのツールのコレクションとして考えるとさらに便利です。
複数の Ruby バージョンを提供する以外に、Gemset (Gem の観点から異なるプロジェクトを分離し、それらが互換性がない場合でも (例: Rails 2 と Rails 3) 複数のバージョンの Gem で作業できる) や次のような機能も提供しています。
- ディレクトリを変更するたびに Gemset/Ruby バージョンを自動的に切り替える
- 一般的な依存関係をセットアップする (パッケージ経由)
- 特定のプロジェクトに一貫した Ruby 環境を提供する
- カスタムの Ruby/カスタムパッチを使用した Ruby のビルドを可能にする
- 特定の Ruby に一貫したインターフェイスを提供する
- 一般的な動作をスクリプト化
- Ruby と Gem のセットアップを簡素化/自動化する
より重要なのは、すべてのプラットフォームで一貫性のある Ruby バージョンの処理のためインターフェイスを提供することです。
誤解 #2: RVM は {OSX、Linux、他の OS} 専用です
RVM は POSIX ツール上にビルドされたすべての *-nix システムで動作するように設計されています。お好みの POSIX 互換システムで RVM が動作しない場合 (最低要件は ruby/curl/Bash のビルドに必要なツール)、バグが発生しています。[課題のオープン](https://github.com/rvm/rvm/issues) でお知らせください。
誤解 #3: RVM は Bash 専用です
RVM は現在、Bash にある基本的な機能を提供するシェル (配列、[[- スタイルのテストなどが想定されます) と連携するように設計されています。つまり、Bash 機能のスーパーセットを提供するシェルであれば、そこで動作するはずです。
お使いのシェルが RVM と連携すべきなのに連携しない場合 (csh/ksh/SH のような他のシェルではないなど)、お知らせください。現在のところ、POSIX SH 標準に準拠していません。しかし、今後これに対応するサポートを導入する予定です。
誤解 #4: RVM は開発にしか使えない
最も一般的な誤解の 1 つは、RVM は「開発でのみ使用できる」というものです。実際、RVM は元々サーバー設定用に構築されており、そのような用途に最適です。Ruby/Gem のセットアップを効率的に行うために簡単に自動化できるツールが含まれているだけでなく、開発からテスト、運用まで一貫した環境を実現することもできます。
より重要なのは、RVM を使用すると、セキュリティ更新などが必要なときに、Ruby バージョンを簡単にアップグレードできることです。同様に重要なのは、自動化タスクの効率が向上することです。
最後に、テスト環境にいる人にとって、RVM は複数の Ruby バージョンに対してテストを実行するのを非常に効率的に行えるようにしてくれます。継続的インテグレーションにおいて、RVM は Ruby の管理に最適です。
誤解 #5: ウェインはロボットである/ウェインは実際にバットマンである
これらのステートメントを確認または拒否しません。