Ruby gem 想要一機裝多個版本?RVM來幫你!


『Rails 4.2.0.beta出了!好想試試!』

在前幾天看到Rails 4.2.0 release note時,大家是否都有相同的想法?尤其看到現在debug console改為內建,真的很想知道他內建的console長什麼樣!

But現在Rails 4.2.0還在beta版,有許多bug需要更新,所以不適合裝在我們正在開發專案的本機上。這次使用的解決方案是使用RVM同時安裝多版本gem。

安裝RVM

各位在安裝Ruby環境的時候,應該都有安裝類似RVM的版本控制程式,例如rbenv等等,如果你是用硬幹的方式裝Ruby,沒辦法切換版本,那請一樣先裝rvm,才有辦法在本機同時安裝多套ruby和rails版本。在終端機中執行:

$  \curl -sSL https://get.rvm.io | bash -s stable

安裝完成以後,請確定使用的是穩定版本的ruby,可先到Ruby官網上進行查詢,假如查到的Ruby 2.1.3,那就執行安裝並切換:

$  rvm install 2.1.3

如果你確認已經有最新的穩定版本Ruby,這個步驟可以跳過。

設定gemset

gemset是啥?可以吃嗎?

如果你知道Ruby有各種gem可以安裝,那 gemset就像一個一個菜籃一樣,每次安裝gemset,就是放一個gem到菜籃裡面。使用者可以有不同的菜籃,放入不同的gem,藉此測試各種相容性問題。

使用以下指令來看現在有哪些gemset:

$ rvm gemset list

正常來說,就是像下圖那樣,只有global一個:

螢幕快照 2014-10-05 上午12.45.30

如果我們要開新的菜籃...啊不,開新的gemset,或是刪除一個gemset,使用以下指令即可:

$  rvm gemset create rails4.2.0
$  rvm gemset delete rails4.2.0

以上rails4.2.0的部份可以替換成任何名字,但強烈建議要看得懂的名字。接下來使用以下指令切換gemset:

$  rvm gemset use rails4.2.0
$  rvm 2.1.3@rails4.2.0
# 懶人用法,直接連同ruby版本和gemset一起切換

如果你原本的gemset有安裝有非常多gem,那切換到新的gemset時,一定會有煥然一新的感覺,因為在輸入$ gem list以後,會發現什麼都沒有,連rails都沒有,只有小貓兩三隻。

在gemset下安裝不同版本的Rails

根據官網步驟,需要先安裝4.1版本 => 確認gem版本 => 升級到beta版

$  gem install rails
$  gem -v
$  gem update --system 2.2.2 
# 目前2.4.1版本有bug,導致rails無法升級至4.2.0

安裝完成以後,輸入 $  rails -v 就可以看到漂亮的 4.2.0 版本號了。詳細更新內容可以參考Rails 4.2.0 release note

如果要回到原本的開發版本,可以用 $ rvm gemset use global 指令切換回原本的gemset,再執行一次$ rails -v,原版本的rails又出現啦,可喜可賀!

延伸閱讀

高見龍部落格

RVM官網關於gemset設定

如何升級安裝Rails 4.2.0