原文地址:http://rvm.io/workflow/projectsgit
RVM支持多種配置文件,並容許爲一個項目配置全自動的Ruby環境切換。不論在什麼狀況下,都不要忘記把那些配置文件一塊兒放入版本控制系統,由於它們也是整個項目配置文件的一部分github
下面的文件按照處理優先級順序排列:ruby
.rvmrc
:一個支持徹底定製項目環境的Shell腳本。.versions.conf
:key=value
配置文件。.ruby-version
:ruby-version
配置文件,僅容許存在這一行。Gemfile
:項目包依賴文件——註釋# ruby=1.9.3
,有效配置ruby "1.9.3"
。注意:
* 只有.rvmrc
被任意版本的RVM支持,其餘文件是RVM1.11.0
中引入的。
* 項目的Ruby環境切換僅在RVM1.22.0
及後續版本支持。app
.rvmrc
文件這是第一個被RVM支持的配置文件,也是處理優先級最高的配置文件。.rvmrc
有個缺點,須要信任此文件,以防止未經驗證的代碼運行,這給平常使用形成了一些不便,也使得程序部署變得複雜。在沒有必要使用這個配置文件的時候,應當更多地使用項目中其餘的配置文件。post
生成示例.rvmrc
:版本控制
echo 'rvm --create use ree@tedxperth' > .rvmrc
還能夠生成一個更復雜的版本:code
rvm --create use ree@tedxperth --rvmrc
能夠編輯這個文件以實現更多的定製化功能。資源
信任.rvmrc
文件:部署
rvm rvmrc trust /path/to/project
.ruby-version
文件這個文件也被chruby和rbenv支持。.ruby-version
只是一個ruby版本,並不須要被信任,因此要比.rvmrc
更簡單方便。
生成.ruby-version
:get
echo 2.0.0 > .ruby-version # OR rvm --ruby-version use 2.0.0
僅在RVM中,.ruby-version
也以ruby@gemset
的形式支持gemsets,其餘的Ruby版本管理器不支持這一功能。也能夠用其餘的文件來具體說明gemset而同時保持兼容性:.ruby-gemset
。
生成.ruby-gemset
:
echo my_app > .ruby-gemset # OR ruby --ruby-version use 2.0.0@my_app
第二種形式會同時建立.ruby-version
和.ruby-gemset
文件。
有些項目須要在環境中進行額外的配置,可使用.ruby-env
文件來作到這一點:
echo "JRUBY_OPTS=--1.9" >> .ruby-env
這個變量會在進入項目目錄時候被自動設置,在退出項目目錄時會恢復成以前的值。
須要注意的是,下面這些文件:
.rbenv-version
.rbenv-vars
.rbfu-version
也會被支持,但它們的處理優先級比.ruby-version
更低。
.versions.conf
文件對於一些更高級的項目,就須要.versions.conf
來處理,這個比.ruby-version
更強大。
生成.versions.conf
文件:
rvm --create --versions-conf use 2.0.0@my_app
這裏有一個該文件的示例:
ruby=jruby-1.6.8 ruby-gemset=my_app env-JRUBY_OPTS=--1.9
Gemfile
文件Gemfile
中的命令是RVM支持並能夠被讀取的。
示例:
ruby "2.0.0" gem "haml"
在一些狀況下,沒法使用ruby
語句或須要更多相關的細節,下面的註釋將會按照優先級做爲相應的語句:
#ruby=jruby-1.6.8 #ruby-gemset=my_app #ruby-env-JRUBY_OPTS=--1.9
另外一個例子,在某個特別的Patch的場景下使用MRI Ruby:
#ruby=ruby-1.9.3-p194 #ruby-gemset=my_app
這些註釋在舊版本的bundler
不支持相關語句的狀況下會被啓動。
一些變量能夠在~/.rvmrc
和/etc/rvmrc
中設置:
rvm_project_rvmrc_default=1
:當項目的相關配置文件沒有找到時,自動選擇默認的Ruby環境。rvm_autoinstall_bundler_flag=1
:自動安裝bundler
,而且當Gemfile
可用時自動運行budnle install
。