名前付きGemセット
RVMは、区分けされた独立したRuby環境を提供します。これは、Ruby、gem、irbがすべて、システムや互いから分離され、自己完結していることを意味します。
名前付きのGemセットを個別に持つことさえできます。
たとえば、Ruby 2.1.1で、あるgemの2つのバージョンをテストしているとしましょう。1つをデフォルトの2.1.1にインストールし、もう1つのバージョン用に名前付きgemsetを作成して、それらを簡単に切り替えることができます。
例: gemのテスト
$ rvm 2.1.1@testing
'2.1.1@testing' GEM_HOME (最初に作成する必要があります) を使用します。一方、
$ rvm 2.1.1
はデフォルトの2.1.1 GEM_HOMEを使用します。
例: Railsのバージョンとアプリのアップグレード
例を説明するために、一般的なユースケースについて説明しましょう。新しいRailsリリースに対してRailsアプリケーションをテストしていると仮定します。RVMを使用すると、複数のRailsバージョンをすばやく切り替えることができるため、このようなテストが非常に簡単になります。最初に、環境を設定しましょう。
$ rvm 2.1.1 $ gem install rails -v 4.1.0 $ rvm gemset create rails410 rails320 Gemset 'rails410' created. Gemset 'rails320' created. $ rvm 2.1.1@rails410 $ gem install rails -v 4.1.0 $ rvm 2.1.1@rails320 $ gem install rails -v 3.2.0
上記の各Rubyインストールでは、完全に個別のバージョンを持つことができることに注意してください!
環境が設定されたので、次のようにRailsバージョンとRubyバージョンを簡単に切り替えることができます。
$ rvm 2.1.1@rails410 ; rails --version Rails 4.1.0 $ rvm 2.1.1@rails320 ; rails --version Rails 3.2.0
サーバーにデプロイする場合、または各gemのrdocとriのインストールを待つ必要がない場合は、gemのインストールと更新でそれらを無効にできます。 ~/.gemrc または /etc/gemrc に次の行を追加してください。
gem: --no-rdoc --no-ri
警告!!!
* RVMはすべてのRubyバージョンとgemsetに個別のgemディレクトリを提供します。* これは、各リビジョンとgemsetにgemを明示的にインストールする必要があることを意味します。RVMは、このプロセスの管理を支援します。「RVM setドキュメント」ページを参照してください。
注: デフォルトのgemsetとグローバルgemsetの違いについて少し説明します。gemsetをまったく使用しない場合、'default'セットにgemが配置されます。特定のgemset(例: @testing)を使用する場合、そのRubyの@globalからgemを継承します。「グローバル」gemsetは、すべてのgemsetでgemを共有できるようにするためのものです。「デフォルト」という単語は、文字通りすべてを物語っています。例:特定のインストール済みのRubyに対して1つを選択せずに使用されるgemset。
 
        