在 Ruby 開發中,時常有在多個 Ruby 版本中測試代碼的需求場景。為了使事情變得更加簡單,我們可以選用 rbenv 這個 Ruby 版本管理工具。如果将它與 ruby-build 搭配使用,則可實作自動編譯安裝 Ruby、輕松管理多個 Ruby 版本的目的。

rbenv 及 ruby-build 的安裝
rbenv 和 ruby-build 的源代碼托管在 GitHub 上,隻需通過
git
指令直接 clone
到本機即可完成安裝。
我們先安裝 rbenv:
$ cd
$ git clone git://github.com/sstephenson/rbenv.git .rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> .bash_profile
$ echo 'eval "$(rbenv init -)"' >> .bash_profile
Zsh 使用者請将 .bash_profile 替換成 .zshenv。
接着,我們安裝 ruby-build:
$ mkdir .rbenv/plugins
$ cd .rbenv/plugins
$ git clone git://github.com/sstephenson/ruby-build.git
為使已安裝的 rbenv 和 ruby-build 在我們的 shell 中即時生效,是以我們執行以下指令:
$ source ~/.bash_profile
同樣的,Zsh 使用者需換成 .zshenv。
安裝 Ruby
現在,我們的 rbenv 工具已經準備就緒,可以用它來安裝各種 Ruby 版本了。不過,在此之前,我們還得準備編譯安裝 Ruby 的各種工具(如編譯器)及依賴。以 Ubuntu 為例,可通過下列指令安裝:
$ sudo apt-get install build-essential autoconf automake bison libtool \
openssl libreadline6 libreadline6-dev curl zlib1g zlib1g-dev libssl-dev \
libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev libc6-dev ncurses-dev
假如我們想要安裝 Ruby 的最新版本 1.9.3 p194,那麼可以執行:
$ rbenv install 1.9.3-p194
提示:不帶參數執行
rbenv install
可以獲得可安裝的 Ruby 版本清單。
rbenv 會先從 Ruby 官方網站下載下傳源碼包,然後開始自動化的編譯安裝過程。 根據機器的配置,該過程稍微有點耗時,你可以通過如下指令來監視:
$ tailf /tmp/ruby-build.*.log
你可以根據實際需要安裝多個 Ruby 版本。在此,我們也将安裝 Ruby 1.8.7 p370:
$ rbenv install 1.8.7-p370
在 Ruby 安裝完成之後,我們需要執行下面的指令,以便 rbenv 重建 shim 可執行檔案:
$ rbenv rehash
管理 Ruby 版本
rbenv 支援以下三種 Ruby 版本的環境管理:
- global:設定全局的 Ruby 版本,換句話說,所有的 shell 都将使用該 Ruby 版本。
- local:為本地的一個特定項目設定 Ruby 版本,注意這将覆寫全局設定。
- shell:針對 shell 設定 Ruby 版本,該設定将覆寫 global 和 local 設定。
要将我們先前安裝的 Ruby 1.9.3 p194 設定為全局性版本,可以執行:
$ rbenv global 1.9.3-p194
設定為局部性版本和 shell 級版本,可分别執行:
$ rbenv local 1.9.3-p194
$ rbenv shell 1.9.3-p194
最後,通過
rbenv versions
能夠檢視已經安裝的 Ruby 版本,其中,帶 * 的項目為目前正在使用的 Ruby 版本。