RVM安装管理多个ruby版本以及多个rails版本

阅读更多
旧文重念,感觉早已过时,如今ruby都2.0了,rvm的使用也大为简化,而且很多人的眼里rvm已经成了重量级的东西,又出来一个rbenv。rvm如今的安装很简单,而且用户体验也越来越好。

安装rvm
rvm的安装又分当前用户安装和多用户安装:
单用户安装就是某个用户安装在自己的home目录下,自己用,我觉得这样是不太好,多用户安装是root权限安装,各个用户可共享使用
单用户的安装命令
前提是先安装curl
$ \curl -L https://get.rvm.io | bash -s stable --ruby

多用户的安装命令
$ \curl -L https://get.rvm.io | sudo bash -s stable


执行命令
source /etc/profile.d/rvm.sh
,加载rvm到环境中

安装依赖
rvm安装完毕之后,就是ruby的下载安装了
但是在此之前需要安装一下ruby的依赖包,诸如openssl之类的,否则以后会出现各种问题,重新安装也是大麻烦
$ rvm requirements

运行上面这个命令,又有一个提示,提示你安装各种版本的ruby(jruby)所依赖的东西,照这命令复制安装一通就可以了

安装ruby
rvm安装完毕之后,只要是联网,安装ruby就轻而易举了,另外如果不是联网,可以把ruby的安装包下载,放在rvm的指定目录下,也能安装
rvm install ruby

上面的命令会自动安装ruby的最新版本,要制定版本只需要把ruby改为1.9.3或者其他版本号就可以了

设置系统默认的版本
rvm use 2.0 --default


安装rails
ruby安装完毕之后,对用的gem般本也会相应的安装,安装rails的话,直接
gem install rails
即可

补充:ubuntu环境下遇到了奇怪的问题,有时候环境变量也设置好了,但是终端中ruby,rails,rvm命令一概提示找不到,最后是需要设置终端的“登录”选项,详情见此处
http://chinacheng.iteye.com/blog/1738036

=============================旧文分割线======================================

安装ruby
   ubuntu server10.10 中的ruby安装的默认版本是1.8.7
   执行命令 即可安装
  
$ sudo apt-get install ruby

  

   由于不同的项目使用的ruby版本、gem版本都不同,多个版本共存也不太现实。今天在网上看到了一个叫做RVM的工具,可以帮助来实现这个功能,再去看看这个东东出来的日期,发现自己真的有点过时了。
   RVM的官方网址是 https://rvm.beginrescueend.com/
   首先要求要安装一些依赖包
  
sudo apt-get install curl bison build-essential git-core zlib1g-dev libssl-dev libreadline5-dev libxml2-dev

   使用脚本安装rvm
  
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)


   安装完毕之后运行
  
rvm notes

   提示找不到命令

   需要修改一下文件  ~/.bashrc
   在这个文件的最后一行添加如下信息
  
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 
   # This loads RVM into a shell session.


  保存成功后
  运行命令:
$ type rvm | head -n1

  结果显示:
rvm 是一个函数

  或者运行这个命令:
rvm notes

  出来一大堆东西

  安装ruby1.9.2
 
rvm install 1.9.2 


  切换版本的命令
 
rvm use 1.9.2

  如果要设置为默认
 
rvm use 1.9.2 --default

 
  系统中以前安装的是1.8.7
 
rvm use system

  就是使用1.8.7版本的ruby

 
  系统终于有了两个版本的ruby并且能够使用rvm进行切换


安装rails

  但是安装rail的时候,出了一点问题
  运行
 $ gem install rails

  不能正确的安装,出现的提示是gem没有安装,我有点困惑了,ruby都装完了,怎么可能没有安装gem呢?
  系统提示如下
 
$ gem install rails

  程序“gem”已包含在下列软件包中:
   * rubygems1.8
   * rubygems1.9.1
  请尝试:sudo apt-get install <选定的软件包>
 
  在安装rvm之前,我已经在系统上已经安装了ruby1.8.7 但是没有安装rubygem1.8
  于是我安装rubygems1.8
 
$ sudo apt-get install rubygems 

  在我把当前的ruby版本设置为系统默认的时候,我尝试着在rvm中为ruby设置gem的版本,结果出现错误
 
$ rvm rubygems lastest

  ERROR: Rubygems version may only be set for an RVM MRI based Ruby, please select one and rerun.
  大体意思是,rvm只能为在rvm中安装的ruby设置gem版本
 
  于是我设置rvm的ruby版本为1.9.2
  然后运行的gem得到的版本 是gem 1.6.2 
 
  $rvm use system
  Now using system ruby.
  $ ruby -v
  ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]
  $ gem -v
  1.3.7

  sudo gem install -v=2.3.8 rails
  sudo gem install -v=3.0.7 rails

  安装了两个版本的rails

  安装完毕之后运行rails命令
 
$ rails -v

  结果是提示没有安装rails
  这个时候需要建立一个软连接
 
sudo ln -s /var/lib/gems/1.8/bin/rails /usr/bin/rails
  $rails -v 
  Rails 3.0.7


  如果要去建立一个rails项目的话需要指定rails版本
 
rails _2.3.8_ test238
  rails _3.0.7_ new test307 #(rails3开始,新建rails项目的命令发生了变化)


  安装rails1.2.2 的时候出现了问题
 $ sudo gem install -v=1.2.2 rails
  While executing gem ... (NoMethodError)
    undefined method `size' for nil:NilClass

 
  这个问题的原因是gem中的缓存文件造成的
  命令
$gem env

  可以查看到gem的path路径
  我得到的路径是:
 
GEM PATHS:
   - /var/lib/gems/1.8

  进入这个目录下的cache目录,然后将所有的文件删除
  在执行命令
 
$ sudo gem install -v=1.2.2 rails

  安装成功
 
  最后机器上安装了2个ruby环境,以及三个rails环境
  gem list 看一下rails的版本
  rails (3.0.7, 2.3.8, 1.2.2)


总之吧,每一次折腾都有新的收获

你可能感兴趣的:(Rails,Ruby,项目管理,Java,rubygems)