经典RVM项目工做流

原文地址:http://rvm.io/workflow/projectsgit

RVM支持多种配置文件,并容许为一个项目配置全自动的Ruby环境切换。不论在什么状况下,都不要忘记把那些配置文件一块儿放入版本控制系统,由于它们也是整个项目配置文件的一部分github

支持的配置文件

下面的文件按照处理优先级顺序排列:ruby

  • .rvmrc:一个支持彻底定制项目环境的Shell脚本。
  • .versions.confkey=value配置文件。
  • .ruby-versionruby-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文件

这个文件也被chrubyrbenv支持。.ruby-version只是一个ruby版本,并不须要被信任,因此要比.rvmrc更简单方便。
生成.ruby-versionget

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不支持相关语句的状况下会被启动。

RVM配置

一些变量能够在~/.rvmrc/etc/rvmrc中设置:

  • rvm_project_rvmrc_default=1:当项目的相关配置文件没有找到时,自动选择默认的Ruby环境。
  • rvm_autoinstall_bundler_flag=1:自动安装bundler,而且当Gemfile可用时自动运行budnle install

推荐资源

相关文章
相关标签/搜索