∞典型的なRVMプロジェクトワークフロー
RVMは、自動Ruby切り替えのためにプロジェクトを設定できるように、複数の種類のファイルをサポートしています。いずれの場合も、これらのファイルはプロジェクト構成の一部であるため、バージョン管理システムに追加してください。
∞サポートされているファイル
優先順位順にリストされています
.rvmrc
- 環境を完全にカスタマイズできるシェルスクリプト.versions.conf
-key=value
設定ファイル.ruby-version
-ruby-version
のみを指定する1行のファイルGemfile
- コメント:#ruby=1.9.3
およびディレクティブ:ruby "1.9.3"
注記
- すべてのRVMバージョンで動作するのは
.rvmrc
のみです。他のファイルはRVM1.11.0
で導入されました。 - 環境の切り替えはRVM
1.22.0
からサポートされています。
∞プロジェクトファイル .rvmrc
これは最初にサポートされた形式であり、他のどのファイルよりも優先されます。.rvmrc
には大きな欠点があります。許可されていないコードの実行を防ぐために信頼する必要があるため、使用が難しく、本番環境へのデプロイが複雑になります。スクリプトが不要な場合は、他のプロジェクトファイルの使用をお勧めします。
単純な.rvmrc
の生成
echo 'rvm --create use ree@tedxperth' > .rvmrc
より複雑なバージョン
rvm --create use ree@tedxperth --rvmrc
ファイルは、追加のカスタマイズを提供するために編集できます。
ファイルを信頼するには
rvm rvmrc trust /path/to/project
∞プロジェクトファイル .ruby-version
このファイルは、chruby と rbenv でもサポートされています。.ruby-version
はRuby名のみなので、信頼する必要がなく、.rvmrc
よりも使い方が簡単です。
.ruby-version
の生成
echo 1.9.3 > .ruby-version # OR: rvm --ruby-version use 1.9.3
RVMでは、.ruby-version
はruby@gemset
の形式でgemsetもサポートしていますが、これは他のRubyバージョンマネージャーとは互換性がありません。互換性を損なうことなくgemsetを指定するために、別のファイル(.ruby-gemset
)を使用できます。
.ruby-gemset
の生成
echo my_app > .ruby-gemset # OR: rvm --ruby-version use 1.9.3@my_app
2番目の形式は、.ruby-version
と.ruby-gemset
の両方を作成します。
一部のプロジェクトでは、環境に追加の構成が必要です。これは、.ruby-env
ファイルを使用することでサポートされます。
echo "JRUBY_OPTS=--1.9" >> .ruby-env
この変数は、プロジェクトディレクトリに入ると設定され、プロジェクトディレクトリから出ると以前の値に戻されます。
.rbenv-version
、.rbenv-vars
、.rbfu-version
といったファイルもサポートされていることに注意してください。これらは.ruby-version
よりも優先順位が低くなります。
∞プロジェクトファイル .versions.conf
より高度なプロジェクトの場合、Rubyバージョン以外にも指定できる.versions.conf
がサポートされています。
.versions.conf
の生成
rvm --create --versions-conf use 1.9.3@my_app
.versions.conf
の例
ruby=jruby-1.6.8 ruby-gemset=my_app env-JRUBY_OPTS=--1.9
∞プロジェクトファイル Gemfile
Gemfile
のruby
ディレクティブはサポートされており、RVMによって読み取られます。
Gemfile
の例
ruby "1.9.3" gem "haml"
ruby
ディレクティブを使用できない場合、またはより細かいバージョンが必要な場合は、次のコメントがディレクティブよりも優先されます。
#ruby=jruby-1.6.8 #ruby-gemset=my_app #ruby-env-JRUBY_OPTS=--1.9
別の例:特定のパッチレベルのMRI Rubyを使用する
#ruby=ruby-1.9.3-p194 #ruby-gemset=my_app
古いバージョンのbundler
はディレクティブをサポートしていなかったため、コメントが推奨されます。
∞RVM設定
これらの変数は、~/.rvmrc
と/etc/rvmrc
で設定できます。
rvm_project_rvmrc_default=1
- 現在のディレクトリにプロジェクトファイルが見つからない場合は、デフォルトのRubyを優先します。rvm_autoinstall_bundler_flag=1
-Gemfile
が利用可能な場合、bundler
gemをインストールし、bundle install
を実行します。