本文系统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]$ ls archives config docs examples gems help installed.at LICENSE man patchsets RELEASE scripts tmp VERSION bin 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-head ruby-head 。。。。。。
3.2、安装ruby (在安装过程中可能会提示安装其他依赖包,使用root安装其依赖的包此略;)
[Truby@master ~]$ rvm install 1.9.3 Searching 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.bz2 Checking requirements for centos. Requirements installation successful. ruby-1.9.3-p551 - #configure ruby-1.9.3-p551 - #download % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 10.2M 100 10.2M 0 0 34767 0 0:05:09 0:05:09 --:--:-- 31365 No checksum for downloaded archive, recording checksum in user configuration. ruby-1.9.3-p551 - #validate archive ruby-1.9.3-p551 - #extract ruby-1.9.3-p551 - #validate binary ruby-1.9.3-p551 - #setup ruby-1.9.3-p551 - #gemset created /opt/Truby/.rvm/gems/ruby-1.9.3-p551@global ruby-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-p551 ruby-1.9.3-p551 - #importing gemsetfile /opt/Truby/.rvm/gemsets/default.gems evaluated to empty gem list ruby-1.9.3-p551 - #generating default wrappers........
A、查询已经安装的ruby
[Truby@master ~]$ rvm list rvm 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.2 Using /opt/Truby/.rvm/gems/ruby-1.9.2-p330
C、设置为默认版本
[Truby@master ~]$ rvm use 1.9.2 --default Using /opt/Truby/.rvm/gems/ruby-1.9.2-p330 [Truby@master ~]$ rvm list default Default Ruby (for new shells) ruby-1.9.2-p330 [ x86_64 ]
D、卸载一个已安装版本
[Truby@master ~]$ rvm remove 1.9.2 ruby-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 aliases ruby-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.2 Using /opt/Truby/.rvm/gems/ruby-1.9.2-p330 [Truby@master ~]$ rvm gemset create rails3 ruby-1.9.2-p330 - #gemset created /opt/Truby/.rvm/gems/ruby-1.9.2-p330@rails3 ruby-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 list rvm rubies ruby-1.9.2-p330 [ x86_64 ] =* ruby-1.9.3-p551 [ x86_64 ] # => - current # =* - current && default # * - default [Truby@master ~]$ rvm gemset list gemsets 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.1 Are 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) > yes installing gem /opt/Truby/.rvm/gem-cache/gem-empty-1.0.0.gem --local --no-ri --no-rdoc. Successfully uninstalled gem-empty-1.0.0 Removed 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.
rvm还可以自动加载gemset.
例如我们有一个rails3.1.3项目,需要1.9.3版本ruby.整个流程可以这样。
rvm install 1.9.3 rvm use 1.9.3 rvm gemset create rails3.3 rvm 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.
本文出自 “大風” 博客,请务必保留此出处http://lansgg.blog.51cto.com/5675165/1579325
原文地址:http://lansgg.blog.51cto.com/5675165/1579325