rvm ruby 多版本控制

 
sudo apt-get install git
sudo apt-get install curl

注意首先把原來的ruby bin目錄從PATH中去掉

安裝 rvm

cd ~
bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
cd .rvm/src/rvm
./install

查看 rvm 安裝目錄

wxianfeng@ubuntu:~/.rvm/gemsets/ruby$ echo $rvm_path
/home/wxianfeng/.rvm

~/.bashrc中添加下面代碼(PATH之用) 很重要

if [[ -s "$HOME/.rvm/scripts/rvm" ]]  ; then source "$HOME/.rvm/scripts/rvm" ; fi  

安裝 ruby 1.9.2

>rvm notes
sudo apt-get install build-essential bison openssl libreadline5 libreadline5-dev curl git zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev autoconf
rvm install 1.9.2

查看:

wxianfeng@ubuntu:~$ rvm list
rvm rubies
   ruby-1.9.2-p0 [ i386 ]

設置默認的 ruby 版本(必須設置)

>rvm --default ruby-1.9.2-p0

可以看到 相關信息

wxianfeng@ubuntu:~$ rvm info

ruby-1.9.2-p0:

  system:
    uname:       "Linux ubuntu 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010 i686 GNU/Linux"
    bash:        "/bin/bash => GNU bash, version 4.1.5(1)-release (i686-pc-linux-gnu)"
    zsh:         " => not installed"

  rvm:
    version:      "rvm 1.1.0 by Wayne E. Seguin ([email protected]) [http://rvm.beginrescueend.com/]"

  ruby:
    interpreter:  "ruby"
    version:      "1.9.2p0"
    date:         "2010-08-18"
    platform:     "i686-linux"
    patchlevel:   "2010-08-18 revision 29036"
    full_version: "ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]"

  homes:
    gem:          "/home/wxianfeng/.rvm/gems/ruby-1.9.2-p0"
    ruby:         "/home/wxianfeng/.rvm/rubies/ruby-1.9.2-p0"

  binaries:
    ruby:         "/home/wxianfeng/.rvm/rubies/ruby-1.9.2-p0/bin/ruby"
    irb:          "/home/wxianfeng/.rvm/rubies/ruby-1.9.2-p0/bin/irb"
    gem:          "/home/wxianfeng/.rvm/rubies/ruby-1.9.2-p0/bin/gem"
    rake:         "/home/wxianfeng/.rvm/gems/ruby-1.9.2-p0/bin/rake"

  environment:
    PATH:         "/home/wxianfeng/.rvm/gems/ruby-1.9.2-p0/bin:/home/wxianfeng/.rvm/gems/ruby-1.9.2-p0@global/bin:/home/wxianfeng/.rvm/rubies/ruby-1.9.2-p0/bin:/home/wxianfeng/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/system/mysql/bin:/usr/local/system/jdk1.6.0_22/bin"
    GEM_HOME:     "/home/wxianfeng/.rvm/gems/ruby-1.9.2-p0"
    GEM_PATH:     "/home/wxianfeng/.rvm/gems/ruby-1.9.2-p0:/home/wxianfeng/.rvm/gems/ruby-1.9.2-p0@global"
    MY_RUBY_HOME: "/home/wxianfeng/.rvm/rubies/ruby-1.9.2-p0"
    IRBRC:        "/home/wxianfeng/.rvm/rubies/ruby-1.9.2-p0/.irbrc"
    RUBYOPT:      ""
    gemset:       ""

這時發現你的PATH已經變了

wxianfeng@ubuntu:~$ echo $PATH
/home/wxianfeng/.rvm/gems/ruby-1.9.2-p0/bin:/home/wxianfeng/.rvm/gems/ruby-1.9.2-p0@global/bin:/home/wxianfeng/.rvm/rubies/ruby-1.9.2-p0/bin:/home/wxianfeng/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/system/mysql/bin:/usr/local/system/jdk1.6.0_22/bin
wxianfeng@ubuntu:~$ ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]

ruby 1.9.2 安裝成功

安裝rails

wxianfeng@ubuntu:~$ gem install rails --pre --no-ri --no-rdoc
/home/wxianfeng/.rvm/rubies/ruby-1.9.2-p0/bin/gem:4: warning: Insecure world writable dir /usr/local/system in PATH, mode 040777
Successfully installed activesupport-3.0.0.rc2
Successfully installed builder-2.1.2
Successfully installed i18n-0.4.2
Successfully installed activemodel-3.0.0.rc2
Successfully installed rack-1.2.1
Successfully installed rack-test-0.5.6
Successfully installed rack-mount-0.6.13
Successfully installed tzinfo-0.3.23
Successfully installed abstract-1.0.0
Successfully installed erubis-2.6.6
Successfully installed actionpack-3.0.0.rc2
Successfully installed arel-1.0.0.rc1
Successfully installed activerecord-3.0.0.rc2
Successfully installed activeresource-3.0.0.rc2
Successfully installed mime-types-1.16
Successfully installed polyglot-0.3.1
Successfully installed treetop-1.4.9
Successfully installed mail-2.2.10
Successfully installed actionmailer-3.0.0.rc2
Successfully installed thor-0.14.6
Successfully installed railties-3.0.0.rc2
Successfully installed bundler-1.0.0.rc.6
Successfully installed rails-3.0.0.rc2
23 gems installed

有提示我path中有777權限目錄,看着不順眼,解決掉:

sudo chmod go-w /usr/local/system

發現安裝上的是 3.0.0.rc2 不是我想要的,目前最新版是 3.0.3

咋辦,用shell腳本全部remove掉

shell:

#!/bin/bash 

for i in `gem list`
do
        gem uninstall $i
done

最後發現rake無法uninstall掉,好那就進入目錄把rake delete掉

wxianfeng@ubuntu:~$ gem list -d rake
/home/wxianfeng/.rvm/rubies/ruby-1.9.2-p0/bin/gem:4: warning: Insecure world writable dir /usr/local/system in PATH, mode 040777

*** LOCAL GEMS ***

rake (0.8.7)
    Author: Jim Weirich
    Rubyforge: http://rubyforge.org/projects/rake
    Homepage: http://rake.rubyforge.org
    Installed at: /home/wxianfeng/.rvm/gems/ruby-1.9.2-p0@global

    Ruby based make-like utility.


>cd /home/wxianfeng/.rvm/gems/ruby-1.9.2-p0@global

wxianfeng@ubuntu:~/.rvm/gems/ruby-1.9.2-p0@global$ ll
total 28
drwxr-xr-x 7 wxianfeng wxianfeng 4096 2010-11-23 14:14 ./
drwxr-xr-x 5 wxianfeng wxianfeng 4096 2010-11-23 14:14 ../
drwxr-xr-x 2 wxianfeng wxianfeng 4096 2010-11-23 15:21 bin/
drwxr-xr-x 2 wxianfeng wxianfeng 4096 2010-11-23 15:22 cache/
drwxr-xr-x 2 wxianfeng wxianfeng 4096 2010-11-23 15:22 doc/
drwxr-xr-x 2 wxianfeng wxianfeng 4096 2010-11-23 15:20 gems/
drwxr-xr-x 2 wxianfeng wxianfeng 4096 2010-11-23 15:21 specifications/

把bin cache doc gems specifications 下和rake相關的信息全部remove掉

重新安裝成功 rails 3.0.3

wxianfeng@ubuntu:~$ gem install rails -v=3.0.3 --no-ri --no-rdoc
/home/wxianfeng/.rvm/rubies/ruby-1.9.2-p0/bin/gem:4: warning: Insecure world writable dir /usr/local/system in PATH, mode 040777
Successfully installed activesupport-3.0.3
Successfully installed builder-2.1.2
Successfully installed i18n-0.4.2
Successfully installed activemodel-3.0.3
Successfully installed rack-1.2.1
Successfully installed rack-test-0.5.6
Successfully installed rack-mount-0.6.13
Successfully installed tzinfo-0.3.23
Successfully installed abstract-1.0.0
Successfully installed erubis-2.6.6
Successfully installed actionpack-3.0.3
Successfully installed arel-2.0.4
Successfully installed activerecord-3.0.3
Successfully installed activeresource-3.0.3
Successfully installed mime-types-1.16
Successfully installed polyglot-0.3.1
Successfully installed treetop-1.4.9
Successfully installed mail-2.2.10
Successfully installed actionmailer-3.0.3
Successfully installed rake-0.8.7
Successfully installed thor-0.14.6
Successfully installed railties-3.0.3
Successfully installed bundler-1.0.7
Successfully installed rails-3.0.3
24 gems installed
wxianfeng@ubuntu:~$ rails -v
Rails 3.0.3

安裝 ruby 1.8.7

>rvm install 1.8.7

切換到 1.8.7

wxianfeng@ubuntu:~/.rvm/gemsets/ruby$ rvm 1.8.7
wxianfeng@ubuntu:~/.rvm/gemsets/ruby$ gem list
/home/wxianfeng/.rvm/rubies/ruby-1.8.7-p302/bin/gem:4: warning: Insecure world writable dir /usr/local/system in PATH, mode 040777

*** LOCAL GEMS ***

rake (0.8.7)

悲劇的發現 其實 默認rake是安裝上的,之前我還把它 給幹掉 重新安裝了

安裝 rails 2.3.5

>gem install rails -v=2.3.5 --no-ri --no-rdoc

以後切換的話 就用 rvm —default 1.8.7 或者 rvm —default 1.9.2 切換默認的ruby版本,可以使用 rvm 1.8.7 切換當前終端版本到1.8.7 , 也就是可以同時開ruby 1.8.7 , ruby 1.9.2 的項目了

安裝之前ruby 1.8.7 + rails 2.3.5 項目的 所有gems (注意把ruby版本切到1.8.7), 如果已經安裝了,就不安裝:

shell:

#!/bin/bash 
# 安裝所有的gems,如果已經安裝了就不安裝

cd /usr/local/system/ruby/lib/ruby/gems/1.8/cache 


for i in `ls`;do
        gem=`echo $i | awk -F'-' '{print $1}'`
        version=`echo $i | grep -o "\-[0-9].*" | sed 's/^-//;s/.gem//'`
        is_gem_exist=`gem list $gem -v=$version`
        if [ -z "$is_gem_exist" ]; then # 注意[] 內部兩邊留空格
                `gem install $i`
        else
                echo "$i have installed"
        fi
done

這樣,之前ruby 1.8.7+rails2.3.4的項目 和現在的 ruby 1.9.2 + rails 3.0.3 都兼容了…oh…YEAR

問題: netbeans 配置使用 ruby 1.8.7 + rails 2.3.5 OR ruby 1.9.2 + rails 3.0.3 ?
更改netbeans 的ruby path ,選擇 autodetect 會把ruby的bin全部找出來,但是注意gem path 有可能錯誤,通過 rvm info 看下 gem 的位置,然後手動更改即可~!

SEE:

http://thoughtrails.com/episodes/1-installing-rails-3-on-ubuntu-10-04-lucid-lynx-with-rvm
http://rvm.beginrescueend.com/rvm/install/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章