RVM 是一個指令行工具,可以提供一個便捷的多版本 Ruby 環境的管理和切換。
如果你打算學習 Ruby / Rails, RVM 是必不可少的工具之一。
這裡所有的指令都是再使用者權限下操作的,任何指令最好都不要用 sudo.
RVM 安裝
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
$ \curl -sSL https://get.rvm.io | bash -s stable
$ source ~/.bashrc
$ source ~/.bash_profile
修改 RVM 的 Ruby 安裝源到 Ruby China 的Ruby 鏡像服務,這樣能提高安裝速度
$ echo "ruby_url=https://cache.ruby-china.org/pub/ruby" > ~/.rvm/user/db
Ruby 的安裝與切換
列出已知的 Ruby 版本
rvm list known
安裝一個 Ruby 版本
rvm install 2.2.0 --disable-binary
這裡安裝了最新的 2.2.0,
rvm list known
清單裡面的都可以拿來安裝。
切換 Ruby 版本
rvm use 2.2.0
如果想設定為預設版本,這樣一來以後新打開的控制台預設的 Ruby 就是這個版本
rvm use 2.2.0 --default
查詢已經安裝的ruby
rvm list
解除安裝一個已安裝版本
rvm remove 1.8.7
gemset 的使用
RVM 不僅可以提供一個多 Ruby 版本共存的環境,還可以根據項目管理不同的 gemset.
gemset 可以了解為是一個獨立的虛拟 Gem 環境,每一個 gemset 都是互相獨立的。
比如你有兩個項目,一個是 Rails 2.3 一個是
rails3. gemset
可以幫你便捷的建立兩套 Gem 開發環境,并且友善的切換。
gemset 是附加在 Ruby 語言版本下面的,例如你用了 1.9.2, 建立了一個叫 rails3 的 gemset,當切換到 1.8.7 的時候,rails3 這個 gemset 并不存在。
建立 gemset
rvm use 1.8.7
rvm gemset create rails23
然後可以設定已建立的 gemset 做為目前環境
use 可以用來切換語言或者 gemset
前提是他們已經被安裝(或者建立)。并可以在
list
指令中看到。
rvm use 1.8.7
rvm use 1.8.7@rails23
然後所有安裝的 Gem 都是安裝在這個 gemset 之下。
列出目前 Ruby 的 gemset
rvm gemset list
清空 gemset 中的 Gem
如果你想清空一個 gemset 的所有 Gem, 想重新安裝所有 Gem,可以這樣
rvm gemset empty 1.8.7@rails23
删除一個 gemset
rvm gemset delete rails2-3
項目自動加載 gemset
RVM 還可以自動加載 gemset。 例如我們有一個 Rails 3.1.3 項目,需要 1.9.3 版本 Ruby,整個流程可以這樣。
rvm install 1.9.3
rvm use 1.9.3
rvm gemset create rails313
rvm use 1.9.3@rails313
下面進入到項目目錄,建立一個
.rvmrc
檔案。
在這個檔案裡可以很簡單的加一個指令:
rvm use 1.9.3@rails313
然後無論你目前 Ruby 設定是什麼,cd 到這個項目的時候,RVM 會幫你加載 Ruby 1.9.3 和 rails313 gemset.
https://ruby-china.org/wiki/rvm-guide
http://www.runoob.com/ruby/ruby-installation-unix.html