RVM管理多个ruby版本以及多个rails版本_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > RVM管理多个ruby版本以及多个rails版本

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

 2012/4/18 2:31:20  hotsunshine  程序员俱乐部  我要评论(0)
  • 摘要:安装rubyubuntuserver10.10中的ruby安装的默认版本是1.8.7执行命令即可安装$sudoapt-getinstallruby由于不同的项目使用的ruby版本、gem版本都不同,多个版本共存也不太现实。今天在网上看到了一个叫做RVM的工具,可以帮助来实现这个功能,再去看看这个东东出来的日期,发现自己真的有点过时了。RVM的官方网址是https://rvm.beginrescueend.com/首先要求要安装一些依赖包sudoapt
  • 标签:rails Ruby RVM 版本
安装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)


总之吧,每一次折腾都有新的收获
发表评论
用户名: 匿名