日期:2014-05-16 浏览次数:20846 次
昨天说的主要是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"
?
剩下的就是如何使用,看你的了
$ 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
$ 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