日期:2014-05-16  浏览次数:20846 次

[Ruby新手教学] linux下的rvm环境

昨天说的主要是windows平台的开发环境,今天说说linux。

?

对于linuxer而言,ruby的世界无疑更加丰富的,这里可以很容易的使用不同的ruby虚拟机实现,事实上,甚至有人专门做了工具来管理不同的ruby虚拟机,让我们更加方便,这个工具的名字叫 rvm (ruby version manager),所以准备linux开发环境,建议从 rvm 开始:

?

?

$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

?

这条命令来自官方网站,它实际上是从指定网址上下载一个脚本并执行,所以如果你的环境中没有 curl 或者遇到了墙,也可以手工下载,然后用bash执行

?

执行完毕后会看到一条提示,要求你将下面这句话放入 profile,这时照做就是了

?

?

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

?

?

执行完毕后,重新打开一个console,就可以执行 rvm 开头的命令了

?

?

$ rvm^t
rvm            rvm_error      rvm-prompt     rvmsudo        
rvm-auto-ruby  rvm-exec       rvm-restart    rvm_warn       
rvm_debug      rvm_log        rvm-shell  

?

?

安装和删除一个ruby vm可以用install, remove:

?

?

$ rvm install ruby-1.8.7
$ rvm remove ruby-1.9.2
?

?

这样,我们可以让多个ruby vm共存,例如在我的机器上,可以看到4个版本的ruby vm:

?

?

$ rvm list

rvm rubies

   ruby-1.8.7-p334 [ x86_64 ]
   jruby-1.5.6 [ amd64-java ]
   jruby-1.6.1 [ linux-amd64-java ]
=> ruby-1.9.2-p180 [ x86_64 ]
?

?

如果需要使用其中一个,可以用 use 命令

?

?

$ which ruby
/home/john/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
$ rvm use ruby-1.8.7
Using /home/john/.rvm/gems/ruby-1.8.7-p334
$ which ruby
/home/john/.rvm/rubies/ruby-1.8.7-p334/bin/ruby

?

就这么简单,但是,对于一些ruby本身的扩展库,还是要考虑编译的问题,比如我们希望支持 readline 能力,可以这样:

?

$ rvm package install readline

?

#初次安装一个ruby vm
$ rvm install 1.9.2 --with-readline-dir=$rvm_path/usr 

?

#对于已经安装的ruby vm
$ cd ~/.rvm/src/ruby-1.8.7-p334
$ ruby extconf.rb --with-readline-dir="/home/john/.rvm/usr"

?

剩下的就是如何使用,看你的了

1 楼 fsword 2011-08-24  
新的ruby-1.9.2在rvm安装时已经很简单了,不需要那么多参数

看到错误:
$ irb
Readline was unable to be required, if you need completion or history install readline then reinstall the ruby.
You may follow 'rvm notes' for dependencies and/or read the docs page https://rvm.beginrescueend.com/packages/readline/ . Be sure you 'rvm remove X ; rvm install X' to re-compile your ruby with readline support after obtaining the readline libraries.


查看依赖
$ rvm notes
......
# For Ruby (MRI & ree)  you should install the following OS dependencies:
  ruby: /usr/bin/apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev


执行 apt-get ,然后重装 ruby
$ rvm uninstall ruby-1.9.2
Removing /home/john/.rvm/rubies/ruby-1.9.2-p290...
john@john-laptop:~$ rvm install ruby-1.9.2