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一個:
如果我們要開新的菜籃...啊不,開新的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又出現啦,可喜可賀!