在 Mac上用 rvm 安裝 ruby

好幾周前 Mac 推出了新的 OS:High sierra,基於習慣(?)所以進行更新了。

然後就杯具了(默)

因為不知名原因(據同事說這點在 beta 版就有了,到了這個正式版依舊沒更動)導致 Mac 自帶的 ruby 路徑維持原狀,但該路徑指向的資料夾卻是空的。

簡單來說,就是自帶的 ruby 2.0 被移除了囧。

當下就是 gulp 不能用(因為有 sass 的 compass ),改為用compass watch也沒用(因為沒 ruby),一整個大驚嚇www

於是今天要講的就是如何在 Mac 上用 rvm 安裝 ruby。

1.開始之前

跟 Windows 系統不同,Mac 本身是自帶 ruby 的。

可以在 bash 查看 ruby 版本號:

  1. user-Macbook-Pro:~ user$ ruby -v

這邊有一點要注意,如果是安裝 High sierra 後發現 ruby 出問題的,這邊查看 ruby 版本號是會正常顯示的喔。

別像某貓傻傻的以為版本號有出來啊所以 ruby 應該正常吧OHO……

2.安裝 rvm

什麼是 rvm ?rvm 全名 Ruby Version Manager ,一個用來管理 ruby 版本號的管理程式。官網在此:RVM官網

根據官網提供的安裝方式(有兩種安裝方式,請擇一),打開 bash,將連結貼上(某貓選擇使用 cURL ):

  1. user-Macbook-Pro:~ user$ \curl -sSL https://get.rvm.io | bash -s stable

這邊可能出現的錯誤:

rvm 安裝錯誤
[圖一] rvm 安裝錯誤
解法就照他的說明,將source ~/.profile貼到.bash_prifile裡。

可以用 vim 開啟編輯:

  1. user-Macbook-Pro:~ user$ vim ~/.bash_profile

按下鍵盤i進入編輯模式,將source ~/.profile貼上,完畢後點esc離開編輯模式,輸入:wq儲存並離開。

完畢後再裝一次(curl那一行)應該就成功了。

3.安裝ruby

3.1.列出可安裝ruby版本

選擇使用 rvm 還有一個好處就是可以選擇要安裝的 ruby 版本,安裝前先確認有哪些版本可以安裝吧。

  1. user-Macbook-Pro:~ user$ rvm list known

首先列出所有可用 ruby 版本號,某貓這邊預定安裝的 ruby版本為v2.4.2,但不知是某貓眼花還是眼鏡該換了,某貓在列表裡沒看到 v2.4.2⋯⋯

算了,反正 v2.4.2 確定存在就對了 (・∀・)

這邊可能出現一個錯誤提示:rvm: command not found。解法也很簡單,在 bash上輸入這一行:

  1. user-Macbook-Pro:~ user$ source ~/.rvm/scripts/rvm

完畢後輸入這行:

  1. user-Macbook-Pro:~ user$ type rvm | head -n 1

如果輸出是:rvm is a function 就完成了。

如果還是不行,請將source ~/.rvm/scripts/rvm加到~/.bash_profile裡。

3.2.安裝ruby

確認 rvm 運行正常後,可以正式安裝 ruby 啦 (・∀・)!某貓選擇的是 v2.4.2,使用:

  1. user-Macbook-Pro:~ user$ rvm install ruby-2.4.2

這邊可能出現錯誤:

ruby 安裝錯誤
[圖二] ruby 安裝錯誤
解法:開新的bash安裝就好。

安裝完後可以用ruby -v確認 ruby 有否安裝完成,沒意外應該會出現版本號。

安裝好的 ruby 版本號
[圖三]安裝好的 ruby 版本號

4.其他疑問

Q1. 我裝了2.4.2,但ruby -v卻不是 2.4.2 ?

A1. 用指令設定ruby預設要使用的版本。

  1. $ ruby --default use 2.4.2

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Powered by WordPress.com.

Up ↑

%d bloggers like this: