首页 > 代码库 > rvm实现一个系统同时运行多个ruby版本项目(用于解决一个服务器部署多个ruby版本项目的实现)

rvm实现一个系统同时运行多个ruby版本项目(用于解决一个服务器部署多个ruby版本项目的实现)


搭建环境:centos7

(1)安装rvm

单用户安装:
#\curl -L https://get.rvm.io | bash -s stable --ruby
或者:
#\curl -sSL https://get.rvm.io | bash -s stable

多用户安装:
#\curl -L https://get.rvm.io |sudo bash -s stable
或者:
#\curl -sSL https://get.rvm.io |sudo bash -s stable

(1-1)切换源为淘宝的源,这样下载安装的话会快一点
# sed -i ‘s!cache.ruby-lang.org/pub/ruby!ruby.taobao.org/mirrors/ruby!‘ $rvm_path/config/db


(2)安装好后添加用户到组:
#usermod -a -G rvm liyongkuan    
(rvm是组名,liyongkuan是用户)

查看用户所属的组的命令:#groups liyongkuan (liyongkuan是用户名,或者查看文件)#cat /etc/group

(3)加载rvm到环境中去
#source /etc/profile.d/rvm.sh


(4)安装依赖
#rvm requirements


(5)安装ruby2.0.0
#rvm install ruby 2.0.0

(6)设置默认的ruby版本
#rvm use 2.0.0 --default

(7)安装rubygems
#rvm use 2.0.0
#rvm gemset create  rails416

(8)切换使用ruby2.0.0和gemset组合
#rvm use 2.0.0
#rvm use 2.0.0@rails416

(9)安装rails4.1.6
#gem install rails -v 4.1.6 --no-rdoc  --no-ri

(10)如果想清空一个gemset的所有gem,想重新安装所有gem,可以这样
#rvm gemset empty 2.0.0@rails416

(11)删除一个gemset
#rvm gemset delete rails416

(12)其他安装等都配置好以后,修改下默认使用项(默认使用ruby2.0.0 ,genset使用rails416)
#rvm use 2.0.0  --default
#rvm use 2.0.0@rails416  --default

(13)使用rvm来快速部署httpd+passenger
安装httpd服务器及依赖
#yum install httpd httpd-devel

安装passenger
#gem install passenger --no-rdoc --no-ri

然后使用passenger-install-apache2-module来安装apache插件和部署(如果报没有权限的话,加上rvmsudo)

#passenger-install-apache2-module

把需要配置的放到/etc/httpd/的配置文件下即可(或者再单独建一个项目配置文件)


#----------------------------------------------------------------------一个系统环境同时运行多个版本的项目-------------------------------------
下面进入到项目目录,建立一个.rvmrc文件

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

rvm use 2.0.0@rails416

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

说明:
需要一个系统运行多个版本时,就可以使用这个方法实现多个ruby版本的项目了,例子
假如我有项目blog1,blog2(blog1是ruby1.8.7+rails2.2.3创建的项目;blog2是ruby2.0.0+rails4.1.6建的项目)
我想要在centos7上同时运行blog1和bolg2,那前面的说明把ruby1.8.7+rails2.2.3和ruby2.0.0+rails4.1.6环境搭建好以后
在项目blog1中添加配置文件.rvmrc
#进入项目
#cd blog1
打开文件并把rvm use 1.8.7@rails223拷贝到.rvmrc文件保存退出即可
#vim .rvmrc
到这已经实现进入这个项目后会运行ruby1.8.7+rails2.2.3这个环境

同理,进入blog2创建项目配置文件.rvmrc
把rvm use 2.0.0@rails416拷贝到在blog2下创建的.rvmrc文件中保存即可

配置apache服务器的时候,和配置一个项目的时候是相同的,运行这个项目的时候,系统会自动加载相应的环境
(如果需要看配置服务器参考我写的配置服务器的文章)
#-------------------------------------------------------------------------------------------------------------------------------------------------------------


#安装rubygems
#rvm install rubygems 1.8.2 --force

#======================
列出已知的ruby版本
#rvm list known


#使用系统自带的版本:
#rvm use system

#默认使用系统自带的版本:
#rvm use system  --default

#卸载一个已经安装的ruby版本
#rvm remove 1.8.7


安装rvm遇到问题:
gpg: 于 2014年11月18日 星期二 09时09分57秒 CST 创建的签名,使用 RSA,钥匙号 BF04FF17
gpg: 无法检查签名:没有公钥
Warning, RVM 1.26.0 introduces signed releases and automated check of signatures when GPG software found.
Assuming you trust Michal Papis import the mpapis public key (downloading the signatures).

GPG signature verification failed for ‘/usr/local/rvm/archives/rvm-1.26.3.tgz‘ - ‘https://github.com/wayneeseguin/rvm/releases/download/1.26.3/1.26.3.tar.gz.asc‘!
try downloading the signatures:

    gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3

or if it fails:

    command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -

the key can be compared with:

    https://rvm.io/mpapis.asc
    https://keybase.io/mpapis

答案:下载公钥导入,执行下面这句即可:
#gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3      (你自己的安装时,会出现自己的key,复制自己命令行中出现的)或者下面这句
# command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -


转载的话请标注出处http://blog.csdn.net/li_yong_kuan



rvm实现一个系统同时运行多个ruby版本项目(用于解决一个服务器部署多个ruby版本项目的实现)