使用rbenv來管理Ruby版本的方法
rbenv 用來管理多個(gè)版本的 ruby 在用戶目錄的安裝和使用, 和 rvm 二選一使用. 具體區(qū)別 rbenv 的文檔里有說明, 社區(qū)里也有討論.
系統(tǒng)需求
OSX: 請找一個(gè)網(wǎng)好的地方, 從 app store 里下載 xcode.app, 安裝完成后運(yùn)行, 在設(shè)置中的 Downloads 里安裝 Command Line Tools.
Linux: 請安裝開發(fā)環(huán)境 (編譯鏈接工具和 ruby 的依賴), 如果只要 jruby 有 jre 就可以了.
安裝 rbenv
在 osx 上可以直接用 homebrew 安裝, 下面是手動(dòng)安裝過程. (不用 zsh 的童鞋注意替換成自己的 shell 配置文件)
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv # 用來編譯安裝 ruby git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build # 用來管理 gemset, 可選, 因?yàn)橛?bundler 也沒什么必要 git clone git://github.com/jamis/rbenv-gemset.git ~/.rbenv/plugins/rbenv-gemset # 通過 gem 命令安裝完 gem 后無需手動(dòng)輸入 rbenv rehash 命令, 推薦 git clone git://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash # 通過 rbenv update 命令來更新 rbenv 以及所有插件, 推薦 git clone https://github.com/rkh/rbenv-update.git ~/.rbenv/plugins/rbenv-update
然后把下面的代碼放到 ~/.bash_profile 里
export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"
注意 Unubtu請放到 ~/.bashrc 里, zsh用戶是 ~/.zshrc
然后重開一個(gè)終端就可以執(zhí)行 rbenv 了.
使用
安裝 ruby
rbenv install --list # 列出所有 ruby 版本 rbenv install 1.9.3-p392 # 安裝 1.9.3-p392 rbenv install jruby-1.7.3 # 安裝 jruby-1.7.3
列出版本
rbenv versions # 列出安裝的版本 rbenv version # 列出正在使用的版本
設(shè)置版本
rbenv global 1.9.3-p392 # 默認(rèn)使用 1.9.3-p392 rbenv shell 1.9.3-p392 # 當(dāng)前的 shell 使用 1.9.3-p392, 會(huì)設(shè)置一個(gè) `RBENV_VERSION` 環(huán)境變量 rbenv local jruby-1.7.3 # 當(dāng)前目錄使用 jruby-1.7.3, 會(huì)生成一個(gè) `.rbenv-version` 文件
解決 MacOSX 下編譯 Ruby 無法在 irb 中輸入中文的方法
安裝 homebrew 的 readline,再進(jìn)入源碼目錄,重新編譯安裝 readline.bundle
brew install readline brew link readline cd src/ruby-1.9.3-p392/ext/readline ruby extconf.rb --with-readline-dir=$(brew --prefix readline) make install
rbenv 下的解決辦法
brew install readline CONFIGURE_OPTS="--disable-install-doc --with-readline-dir=$(brew --prefix readline)" rbenv install 1.9.3-p392
有關(guān) ruby-2.0.0-p0 在 OS X 10.7+ 上的問題,參見:https://github.com/sstephenson/ruby-build/wiki
其他
rbenv rehash # 每當(dāng)切換 ruby 版本和執(zhí)行 bundle install 之后必須執(zhí)行這個(gè)命令 rbenv which irb # 列出 irb 這個(gè)命令的完整路徑 rbenv whence irb # 列出包含 irb 這個(gè)命令的版本
rbenv 下使用 gemset
簡介
rvm 中最方便的就是 gemset。實(shí)際上,rbenv 通過插件也可以使用 gemset
安裝
MacOS 下使用 brew 的話,一個(gè)命令就搞定
brew install rbenv-gemset
使用
創(chuàng)建一個(gè) gemset
rbenv gemset create 1.9.3-p392 ruby-china
具體使用方法
在項(xiàng)目的根目錄下,把想要使用的 gemset 名字放到 .rbenv-gemsets 文件中即可。有 .rbenv-gemsets 文件的情況下執(zhí)行 bundle 命令就是對設(shè)置好的 gemset 進(jìn)行操作
echo ruby-china > .rbenv-gemsets
當(dāng)前目錄下沒有 .rbenv-gemsets 文件的情況下,執(zhí)行 bundle 命令(沒有指定 --path 參數(shù)的情況)時(shí),是對當(dāng)前版本的 ruby 版本的 gemset 。也就相當(dāng)于 rvm 中 global gemset 的作用了
相關(guān)文章
Java 版的 Ruby 解釋器 JRuby 1.7.14 發(fā)布
JRuby,一個(gè)采用純Java實(shí)現(xiàn)的Ruby解釋器,由JRuby團(tuán)隊(duì)開發(fā)。它是一個(gè)自由軟件,在CPL/GPL/LGPL三種許可協(xié)議下發(fā)布。2014-08-08ruby 學(xué)習(xí)筆記(1) 初識(shí)語法
雖然ruby/ruby on rails從2007年就一直獲獎(jiǎng)無數(shù),但身為一個(gè)中國人,一直對小日本創(chuàng)造的東西不怎么感興趣,想想其實(shí)也沒必要,技術(shù)本身是無國界的,日本其實(shí)也有值得學(xué)習(xí)的地方(扯遠(yuǎn)了,呵)2010-02-02用實(shí)際代碼演示Ruby的容易被誤解的6個(gè)特性
這篇文章主要介紹了用實(shí)際代碼演示Ruby的容易被誤解的6個(gè)特性,采集自IBM官方網(wǎng)站的開發(fā)者文檔,需要的朋友可以參考下2015-04-04