[Ruby] 如何在 Ubuntu 14.04 LTS 安裝 RVM
好吧!我得承認其實我不會寫 Ruby,我只是常會用到依賴 Ruby 的工具軟體(例如 RubyRipper),而使用 Ruby 的最大麻煩在於,2.X 系列和 1.X 系列相容性不好,而開發者們各自有喜好的版本,各種複雜的設定讓我幾乎無法一時之間閱讀完,還好我是 Ubuntu 使用者,立刻放生 M$ 改投向 RVM(Ruby Vrersion Manager)的懷抱。所以,為了說服仍在觀望的各位,小獅我決定要拉大家入坑摟~!
第一步,確定你的 Ubuntu 版本
雖然這篇說明理論上適用於其他版本,甚至其他 Debian-base 的發行版,但是在各位發生問題時,我還是需要知道更多資訊,才能嘗試重現問題!
cat /etc/*-release
▲ 只要執行這一行指令,就可以顯示出發型版的資訊!
alex@Alex-PC:~$ cat /etc/*-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS" NAME="Ubuntu" VERSION="14.04.1 LTS, Trusty Tahr" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 14.04.1 LTS" VERSION_ID="14.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
▲ 小獅自己的電腦,同時也是這次教學的示範(教具?)
第二步,移除所有舊版本 / 失敗的安裝(全新安裝可忽略)
sudo apt-get purge ^ruby
▲ 清除所有已安裝的相關套件(^是正規表示法,表示在最前方,所有會被移除的套件清單)
gem uninstall rvm
▲ 執行後會刪除 rvm 的 gem(大概)
rvm implode
▲ 這是 rvm 內建的移除指令,執行之後會出現如下訊息,
Are you SURE you wish for rvm to implode? This will recursively remove /home/xxx/.rvm and other rvm traces? (anything other than 'yes' will cancel) >
輸入 yes 之後按下 Enter 鍵,就可以刪除所有 rvm 資料夾和其中的 Ruby。
若沒無法選擇並直接出現如下訊息
Psychologist intervened, cancelling implosion, crisis avoided :)或提示權限不足,請使使用這個指令再來一次
rvm implode --force▲ 強制移除(忽略錯誤)
接著到你自己的家目錄(/home/使用者名稱)中,找到以下三個檔案
- .bashrc
- .profile
- .bash_profile
找到其中所有有關 Ruby 的敘述,並刪除它。
rm ~/.rvmrc sudo rm /etc/.rvmrc
▲ 刪除 rvmrc 檔
第三步,開始安裝
在開始安裝之前,有幾個觀念要先注意一下
- 除非需要安裝給多人使用,或有特殊需求,請一律使用非特權帳戶(不使用 sudo)
- 請不要跳步驟,若若系統本來就有安裝該套件,apt-get 會自動略過
gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
▲ 先把 gpg key 裝好
sudo apt-get update
▲ 安裝之前先更新一下套件庫
sudo apt-get install curl build-essential ruby-dev
▲ curl 等一下馬上會用到,而 build-essential 跟 ruby-dev 是之後編譯原生碼(安裝 gem)極可能會用上
\curl -sSL https://get.rvm.io | bash -s stable --ruby
▲ 下載並安裝最新的穩定版
source ~/.rvm/scripts/rvm
▲ 關閉所有終端機視窗,並執行如上指令,載入 RVM
若不想每次執行都要手動載入,可以在確認正確執行後使用以下指令,設定為自動載入
echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile▲ 在 /bash_profile 中加入載入指令
第四步,測試安裝:
如果你成功到達這一步,你的 RVM 應該沒問題了,但在開始使用前,我建議多作一點測試,確定它完全正常!
alex@Alex-PC:~$ rvm --version rvm 1.26.9 (latest) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/] alex@Alex-PC:~$ ruby -v ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux] alex@Alex-PC:~$ gem --version 2.4.5 alex@Alex-PC:~$ type rvm | head -n 1 rvm is a function alex@Alex-PC:~$
▲ 如果你可以看到類似的訊息,代表你成功了!
第五步,快速複習常用指令
rvm install 2.1.1
▲ 指定要安裝 Ruby 2.1.1(可以自行替換成所需版號)
rvm use 2.1.1
▲ 指定要使用 Ruby 2.1.1(可以自行替換成所需版號)
rvm --default use 2.1.1
▲ 指定要將 Ruby 2.1.1 設為預設值(可以自行替換成所需版號)
rvm use default
▲ 切換回預設的 Ruby 版本(可使用上方指令重新設定)
rvm list known
▲ 列出所有 Ruby 版本(若無特殊需求,請選擇# MRI Rubies底下的就好)
參考資料:
- How can I remove RVM (Ruby Version Manager) from my system? – StackOverflow
- Setup Ruby On Rails on Ubuntu 14.04 Trusty Tahr – GoRails
-
How To Install Ruby on Rails on Ubuntu 12.04 LTS (Precise Pangolin) with RVM – DigitalOcean
- Unable to install gem – Failed to build gem native extension – cannot load such file — mkmf (LoadError) – StackOverflow
- Ruby – Wikipedia(zh-tw)