天天看點

rbenv + ruby-build: 輕松管理多個 Ruby 版本

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

rbenv + ruby-build: 輕松管理多個 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 版本。

繼續閱讀