Ruby版本管理工具RVM的安装和使用教程
RVM是一个命令行工具,可以提供一个便捷的多版本Ruby环境的管理和切换。
https://rvm.io/
如果你打算学习Ruby/Rails,RVM是必不可少的工具之一。
这里所有的命令都是再用户权限下操作的,任何命令最好都不要用sudo.
RVM安装
$curl-Lget.rvm.io|bash-sstable $source~/.bashrc $source~/.bash_profile
修改RVM的Ruby安装源到国内的淘宝镜像服务器,这样能提高安装速度
$sed-i-e's/ftp\.ruby-lang\.org\/pub\/ruby/ruby\.taobao\.org\/mirrors\/ruby/g'~/.rvm/config/db
Ruby的安装与切换
列出已知的Ruby版本
rvmlistknown
安装一个Ruby版本
rvminstall2.2.0
这里安装了最新的2.2.0,rvmlistknown列表里面的都可以拿来安装。
切换Ruby版本
rvmuse2.2.0
如果想设置为默认版本,这样一来以后新打开的控制台默认的Ruby就是这个版本
rvmuse2.2.0--default
查询已经安装的ruby
rvmlist
卸载一个已安装版本
rvmremove1.8.7
gemset的使用
RVM不仅可以提供一个多Ruby版本共存的环境,还可以根据项目管理不同的gemset.
gemset可以理解为是一个独立的虚拟Gem环境,每一个gemset都是相互独立的。
比如你有两个项目,一个是Rails2.3一个是rails3.gemset可以帮你便捷的建立两套Gem开发环境,并且方便的切换。
gemset是附加在Ruby语言版本下面的,例如你用了1.9.2,建立了一个叫rails3的gemset,当切换到1.8.7的时候,rails3这个gemset并不存在。
建立gemset
rvmuse1.8.7 rvmgemsetcreaterails23
然后可以设定已建立的gemset做为当前环境
use可以用来切换语言或者gemset
前提是他们已经被安装(或者建立)。并可以在list命令中看到。
rvmuse1.8.7 rvmuse1.8.7@rails23
然后所有安装的Gem都是安装在这个gemset之下。
列出当前Ruby的gemset
rvmgemsetlist
清空gemset中的Gem
如果你想清空一个gemset的所有Gem,想重新安装所有Gem,可以这样
rvmgemsetempty1.8.7@rails23
删除一个gemset
rvmgemsetdeleterails2-3
项目自动加载gemset
RVM还可以自动加载gemset。
例如我们有一个Rails3.1.3项目,需要1.9.3版本Ruby,整个流程可以这样。
rvminstall1.9.3 rvmuse1.9.3 rvmgemsetcreaterails313 rvmuse1.9.3@rails313
下面进入到项目目录,建立一个.rvmrc文件。
在这个文件里可以很简单的加一个命令:
rvmuse1.9.3@rails313
然后无论你当前Ruby设置是什么,cd到这个项目的时候,RVM会帮你加载Ruby1.9.3和rails313gemset.
使用RVM快速部署Nginx+Passenger
首先安装Passenger
geminstallpassenger
然后使用passenger-install-nginx-module来安装Nginx和部署。
因为这一步需要root权限(因为要编译Nginx)可以用rvmsudo这个东西(这个东西真是个好东西)。
rvmsudopassenger-install-nginx-module
然后会让你选择是下载Nginx源码自动编译安装,还是自己选择Nginx源码位置。
选择Nginx手动安装的可以添加别的编译参数,方便自定义编译Nginx。
然后一路下载安装。默认的安装位置为/opt/nginx.
然后看看nginx.conf,都给你配置好了,只需要加上root位置(yourapp/public)就可以了。
当我第一次安装完成了,就惊呼,这也太爽了吧。
PS:RVM是个好东西,做的很智能,(大部分)操作失败后会告诉你原因,然后告诉你需要安装哪些Lib等等,非常适合新手老手使用,简直是居家旅行必备良药。