本文系统Centos6.5 x64

Ruby On Rails是一个用Ruby语言写的开源Web框架,和J2EE,PHP等类似。Ruby On Rails是一个非常优美的Web开发框架,并且融入了敏捷开发的精髓:约定大于配置。你会发现,它真的是一个非常优美的框架!今天我们介绍如何在Centos下搭建Ruby On Rails开发环境。

Tips:

Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)。目前支持Ruby的大多数版本,有 1.8.7,1.9.1,1.9.2和Ruby Enterprise Editon,通过RVM可以很方便的在多个Ruby版本中快速切换。RVM同时 也支持JRuby。

设 想当前工作在Ruby 1.9.2 + Rails 3.0下,想体验最新的Rails 开发版,怎么办?Gemset就是为解决这个问题而设计的,它可 以为每个Ruby版本生成多个gemsets,各个gemset相互独立,这意味着你可以很方便的切换到某个gemset下去体验一个未正式发布的gem 版本,而不会破坏当前的工作环境,完毕后,再切回到工作的gemset下即可。

大多的IDE也都很好的支持了RVM方面,可以自动识别RVM管理的Ruby版本和GemSet,方便你切换Ruby的解析环境。

1、创建普通帐号、查看当前环境环境文件;

[root@master ~]# useradd -d /opt/Truby Truby[root@master ~]# echo "Truby" |passwd --stdin Truby

2、安装rvm源:

[Truby@master ~]$ curl -L get.rvm.io | bash -s stable[Truby@master ~]$ source ~/.profile[Truby@master ~]$ source ~/.bash_profile

安装rvm后查看本地当前变化:

[Truby@master ~]$ ls -a.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .emacs  .gnome2  .gnupg  .mozilla  .pki  .profile  .rvm  .zlogin  .zshrc[Truby@master ~]$ cd .rvm/l[Truby@master .rvm]$ lsarchives  config   docs          examples   gems     help   installed.at  LICENSE  man      patchsets  RELEASE  scripts  tmp   VERSIONbin       contrib  environments  gem-cache  gemsets  hooks  lib           log      patches  README     rubies   src      user  wrappers

使用下面命令对RVM自己进行升级
$ rvm update

 

rvm 相关命令:

$ rvm info  $ rvm info 1.9.2  $ rvm list known  $ rvm install 1.9.2        # 安装 ruby-1.9.2  $ rvm install ree          # install Ruby Enterprise Edition (REE)  $ rvm  ruby-1.8.7-p160     #切换1.8.7-p160为当前使用版本  $ rvm 1.8.7-p160           #同上面命令一样rvm ruby-1.8.7-p160  $ ruby -v                  #查看当前Ruby版本  $ which ruby$ rvm --default use 1.9.2  #设置1.9.2为默认版本    $ rvm default              #通过default可以快速回到默认版本  $ rvm list default         #查看当前版本设置信息  $ rvm reset                #恢复系统默认设置    $ rvm list                 #列出已安装的Ruby版本    $ rvm list rubies          #同上  $ rvm list default         #显示默认Ruby版本信息  $ rvm list known           #列出RVM所支持的所有Ruby版本的信息  #为ree-187的Ruby版本创建一个别名叫:reed$ rvm alias create reed ree-1.8.7-p2010.01      $ rvm use reed             #通过别名迅速切换  $ rvm alias delete reed    #删除别名  $ rvm alias list           #查看所有的别名  $ rvm remove ruby-1.9.2-p0    $ rvm uninstall ruby-1.9.2-p0  $ rvm gemset create rails3 #创建一个名为rails3的gemset   $ rvm gemset use rails3    #在当前Ruby下使用rails3这个gemset  #或者直接使用这种命名,直接指定ruby和gemset的信息。    $ rvm use ruby-1.9.2-p0@rails3 #设置默认  $ rvm use ruby-1.9.2-p0@rails3 --default   #选择使用ruby版本  $ rvm default                #列出当前Ruby版本下所有gemsets的信息 $ rvm gemset list    #列出所有Ruby版本下所有gemsets的信息    $ rvm gemset list_all  #显示当前所使用的gemset信息  $ rvm gemset name  $ rvm gemdir                       #所在位置  ~/.rvm/gems/ruby-1.9.2-p0@rails3$ rvm gemset delete rails3         #会让确认一次    $ rvm --force gemset delete rails3 #直接删除,没有确定步骤  $ rvm gemset empty rails3  $ rvm --force gemset empty rails3  #直接删除,没有确定步骤  $ rvm gemset export rails3.gems  $ rvm gemset rails 3  $ rvm gemset import rails3   $ rvm gemset copy 1.8.7@rails3 1.9.2-head@rails3

3、安装ruby

3.1、列出已知的ruby版本

[Truby@master ~]$ rvm list known# MRI Rubies[ruby-]1.8.6[-p420][ruby-]1.8.7[-head] # security released on head[ruby-]1.9.1[-p431][ruby-]1.9.2[-p330][ruby-]1.9.3[-p551][ruby-]2.0.0[-p598][ruby-]2.1.4[ruby-]2.1[.5][ruby-]2.1-headruby-head。。。。。。

3.2、安装ruby (在安装过程中可能会提示安装其他依赖包,使用root安装其依赖的包此略;)

[Truby@master ~]$ rvm install 1.9.3Searching for binary rubies, this might take some time.Found remote file https://rvm_io.global.ssl.fastly.net/binaries/centos/6/x86_64/ruby-1.9.3-p551.tar.bz2Checking requirements for centos.Requirements installation successful.ruby-1.9.3-p551 - #configureruby-1.9.3-p551 - #download  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                 Dload  Upload   Total   Spent    Left  Speed100 10.2M  100 10.2M    0     0  34767      0  0:05:09  0:05:09 --:--:-- 31365No checksum for downloaded archive, recording checksum in user configuration.ruby-1.9.3-p551 - #validate archiveruby-1.9.3-p551 - #extractruby-1.9.3-p551 - #validate binaryruby-1.9.3-p551 - #setupruby-1.9.3-p551 - #gemset created /opt/Truby/.rvm/gems/ruby-1.9.3-p551@globalruby-1.9.3-p551 - #importing gemset /opt/Truby/.rvm/gemsets/global.gems....................................ruby-1.9.3-p551 - #generating global wrappers........ruby-1.9.3-p551 - #gemset created /opt/Truby/.rvm/gems/ruby-1.9.3-p551ruby-1.9.3-p551 - #importing gemsetfile /opt/Truby/.rvm/gemsets/default.gems evaluated to empty gem listruby-1.9.3-p551 - #generating default wrappers........

 A、查询已经安装的ruby

[Truby@master ~]$ rvm listrvm rubies   ruby-1.9.2-p330 [ x86_64 ]=* ruby-1.9.3-p551 [ x86_64 ]# => - current# =* - current && default#  * - default[Truby@master ~]$

B、使用一个ruby版本

[Truby@master ~]$ rvm use 1.9.2Using /opt/Truby/.rvm/gems/ruby-1.9.2-p330

C、设置为默认版本

[Truby@master ~]$ rvm use 1.9.2 --defaultUsing /opt/Truby/.rvm/gems/ruby-1.9.2-p330[Truby@master ~]$ rvm list defaultDefault Ruby (for new shells)   ruby-1.9.2-p330 [ x86_64 ]

D、卸载一个已安装版本

[Truby@master ~]$ rvm remove 1.9.2ruby-1.9.2-p330 - #removing src/ruby-1.9.2-p330..ruby-1.9.2-p330 - #removing rubies/ruby-1.9.2-p330..ruby-1.9.2-p330 - #removing gems....ruby-1.9.2-p330 - #removing aliasesruby-1.9.2-p330 - #removing wrappers....ruby-1.9.2-p330 - #removing environments....

4、gemset的使用

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并不存在。

建立gemset

[Truby@master ~]$ rvm use 1.9.2Using /opt/Truby/.rvm/gems/ruby-1.9.2-p330[Truby@master ~]$ rvm gemset create rails3ruby-1.9.2-p330 - #gemset created /opt/Truby/.rvm/gems/ruby-1.9.2-p330@rails3ruby-1.9.2-p330 - #generating rails3 wrappers........

设定已建立的gemset做为当前环境

use 可以用来切换语言,或者gemset,前提是他们已经被安装(或者建立)

[Truby@master ~]$ rvm use 1.9.3[Truby@master ~]$ rvm use 1.9.3@rails4

并可以在list命令中看到:

[Truby@master ~]$ rvm listrvm rubies   ruby-1.9.2-p330 [ x86_64 ]=* ruby-1.9.3-p551 [ x86_64 ]# => - current# =* - current && default#  * - default[Truby@master ~]$ rvm gemset listgemsets for ruby-1.9.3-p551 (found in /opt/Truby/.rvm/gems/ruby-1.9.3-p551)   (default)   global   rails3.1=> rails4

清空gemset中的gem

如果你想清空一个gemset的所有gem,想重新安装所有gem,可以这样

[Truby@master ~]$ rvm gemset empty 1.9.2@rails3.1Are you SURE you wish to remove the installed gems for /opt/Truby/.rvm/gems/ruby-1.9.3-p551@rails4?(anything other than 'yes' will cancel) > yesinstalling gem /opt/Truby/.rvm/gem-cache/gem-empty-1.0.0.gem --local --no-ri --no-rdoc.Successfully uninstalled gem-empty-1.0.0Removed successfully.

删除一个gemset

[Truby@master ~]$ rvm gemset delete rails3.1/opt/Truby/.rvm/gems/ruby-1.9.2-p330@rails3.1 did not previously exist. Ignoring.

项目自动加载gemset

rvm还可以自动加载gemset.

例如我们有一个rails3.1.3项目,需要1.9.3版本ruby.整个流程可以这样。

rvm install 1.9.3rvm use 1.9.3rvm gemset create rails3.3rvm use 1.9.3@rails3.3

下面进入到项目目录(比如redmine,此为ror项目),建立一个.rvmrc文件。

在这个文件里可以很简单的加一个命令:

rvm use 1.9.3@rails3.3

然后无论你当前ruby设置是什么,cd到这个项目的时候,rvm会帮你加载 ruby 1.9.3和rails3.3 gemset.