今天看到一个群里问一些 rvm 的问题。 写了一个实用指南。http://hisea.me/p/rvm-guide
rvm 是一个命令行工具,可以提供一个便捷的多版本 ruby 环境的管理和切换。
如果你打算学习 ruby/rails, rvm 是必不可少的工具之一。
这里所有的命令都是再用户权限下操作的,任何命令最好都不要用 sudo.
$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
rvm list known
rvm install 1.9.3
这里安装了最新的 1.9.3, rvm list known
列表里面的都可以拿来安装。
rvm use 1.9.3
如果想设置为默认版本,可以这样
rvm use 1.9.3 --default
rvm list
rvm remove 1.9.2
rvm 不仅可以提供一个多 ruby 版本共存的环境,还可以根据项目管理不同的 gemset.
gemset 可以理解为是一个独立的虚拟 gem 环境,每一个 gemset 都是相互独立的。
比如你有两个项目,一个是 rails 2.3 一个是 rails 3. gemset 可以帮你便捷的建立两套 gem 开发环境,并且方便的切换。
gemset 是附加在 ruby 语言版本下面的,例如你用了 1.9.2, 建立了一个叫 rails3 的 gemset,当切换到 1.8.7 的时候,rails3 这个 gemset 并不存在。
rvm use 1.8.7
rvm gemset create rails23
use 可以用来切换语言,或者 gemset,前提是他们已经被安装 (或者建立)。并可以在 list 命令中看到。
rvm use 1.8.7
rvm use 1.8.7@rails23
然后所有安装的 gem 都是安装在这个 gemset 之下。
rvm gemset list
如果你想清空一个 gemset 的所有 gem,想重新安装所有 gem,可以这样
rvm gemset empty 1.8.7@rails23
rvm gemset delete rails2-3
rvm 还可以自动加载 gemset.
例如我们有一个 rails3.1.3 项目,需要 1.9.3 版本 ruby.整个流程可以这样。
rvm install 1.9.3
rvm use 1.9.3
rvm gemset create rails313
rvm use 1.9.3@rails313
下面进入到项目目录,建立一个.rvmrc 文件。
在这个文件里可以很简单的加一个命令:
rvm use 1.9.3@rails313
然后无论你当前 ruby 设置是什么,cd 到这个项目的时候,rvm 会帮你加载 ruby 1.9.3 和 rails313 gemset.