進度條

[Ruby on Rails] 02. [Mac] 如何在Mac底下安裝Ruby On Rails 開發環境

這篇文章要教大家如何在Mac 上面安裝Ruby on rails的開發環境

作者: 縱裕 更新日期:

此文章也有影片介紹,可以搭配影片一起學習!

01. [Mac] 安裝Ruby on Rails 6.x [如以Rails 6 進行課程請接續章節三] (所屬課程)

02. [舊版][Mac] 安裝Ruby on Rails 5.x (含一些錯誤處理,沒碰到問題不用看) (所屬課程)


以下正式開始文章


這篇文章要教大家如何在 MacOS 上面安裝 Ruby on rails 的開發環境。

 

Ruby on rails 最後主要是架設在 Linux 平台上面,他利用到的一些函式庫大多是基於 Linux 的開源或是標準函式庫。所以以開發來講,與其使用與 Linux 完全不一樣的 Windows 系統來做開發,還不如使用 Linux 系統的遠親 MacOS 來開發,環境會比較相近,上線時的設定也“比較”不需要考慮差異。所以 Ruby on rails 開發者多半是使用 MacOS 來開發。

 

不過現在 Windows 版也移植的滿好的,所以如果沒有 Mac 的話也可以使用 Windows 版本做 Rails 的開發與練習。如果不喜歡的話也可以在 Windows 上面開虛擬機器直接運行 Linux 來開發(例如 Ubuntu),或是直接購買遠端 VPS 服務取得遠端的虛擬機器,利用 SSH 和 SFTP 來開發。

 

 

回到主題,現在開始示範。

 

 

在 Mac 上面建立開發環境算是滿瑣碎的,也同時有很多種方法。我們這編介紹的是 InstallRails.com 所整理出來的方式,以下為步驟:

 

 

1. 進入網站,點擊 Start Now 按鈕。

 

 

 

 

 

2. 選擇你的作業系統,我們這邊是 Mac

 

 

 

 

3. 看你的作業系統版本,選擇跟你的作業系統符合的編號,但是我們這邊建議大家都升級到最新的作業系統。因為 Mac 通常會限制開發 Xcode 版本(通常用來開發 iPhone 程式),如果不是最新版本的 MacOS 就不能下載最新的 Xcode。Xcode 除了直接可以用來開發外,他其實也包含了很多的函式庫,所以如果不能隨時在最新版,在開發上可能會有點問題。我們接下來就選擇目前最新版 10.13 的說明

 

 

 

4. 回到我們的電腦,從 Mac App Store 安裝 Xcode,Xcode 是免費的,不過檔案會有點大,所以會等一段時間。

 

 

 

 

5. 打開 Xcode,左上角選擇設定 Preference,進入 Locations 分頁,安裝Command Line Tools。這主要是用來安裝 C 語言的 compiler。

 

 

 

6. 接下來會使用終端機( Terminal )直接下指令,所以先找到它在哪裡,最好開啟後就所在 Dock 上面。Terminal 對於開發者來說是相當重要的一個工具。可以直接搜尋,或是 Application -> Utilities -> Terminal 找到它。

 

 

7.  安裝 Homebrew

Homebrew 官網是一個套件管理程式,預設並不會被安裝在 Mac 系統,Homerbrew 官方 Github 上已經寫好了安裝的 Script 。只需要下載後執行就可以了。

下載可以使用 curl 這個指令,並且連線的時候最好要有 SSL。 下載下來的Script 其實是 Ruby 的 Script,所以我們要用 ruby 去執行它。把兩段指令合在一起就會變成 installrails.com 上面的寫法。

 

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 

 

安裝完以後可以跑一下顯示brew的版號,來確定是否有安裝成功。

 

$ brew -v

 

 

新手特別要注意,Homebrew 他是一個套件管理系統,所以並不是 "屬於" Rails的一部分。

 

 

8.  [可選] 利用 brew 安裝git

$ brew install git

(或是用 Git官網 的安裝檔)

 

 

建議是要安裝 Git,版本管理現在已經是工程師常識了。不過我們的 Ruby on rails 課程沒有跟 Git 有相依性,所以也可以不裝。

 

 

9.  [可選擇] 設定 Git 資料,如果要使用 Git 的話一定要設定。

$ git config --global user.name "你的名字"

$ git config --global user.email "你的Email"

 

 

 

10. 重點1,安裝RVM(官網)

  • 10.a 先安裝 gnupg 與 gnupg2
    $ brew install gnupg gnupg2
     
  • 10.b 安裝 gpg key
    gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
     
  • 10.c 執行指令,他會自動下載後安裝。
    $ \curl -L https://get.rvm.io | bash -s stable

     
  • 10.d 安裝完以後RVM會是空的,而且初始化設定還沒做,所以就要下載ruby,他同時會把這版本的ruby當作預設的。
    $ rvm use ruby --install --default

     
  • 10.e 安裝完可以使用這個指令看版本。
    $ ruby -v 


     

 

以下不用執行但還是補充一下

如果要安裝特定版本 ruby (例如 ruby 2.6)
$ rvm install 2.6

使用特定版本 ( gem 安裝是掛在 ruby 版本底下,所以切換版本 gem 會需要重新 install )
$ rvm use 2.6


查看哪些版本可以安裝
$ rvm list known

 

 

 

已知的可能錯誤(不一定會碰到):

 

  • *如果你有安裝 Avira 防毒的話,會在編譯 ruby 的時候失敗 (rvm use ruby --install --default 編譯錯誤) ,請先關掉 Avira 再進行指令,主要是因為 Avira 會鎖住一些系統權限,例如 /dev/fd/4,編譯完成後再開啟 Avira 就可以了。
     
  • *如果出現,Warning: No available formula or cask with the name 在 安裝 brew install xxx 的時候。請執行 

    $ brew doctor

    看他說什麼,如果裡面有

    Warning: Homebrew/homebrew-core was not tapped properly! Run: rm -rf "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core" brew tap homebrew/core

    就表示你的 homebrew-core 有問題。

    需要先執行(這個動作要小心,因為用到 rm -rf )

    $ rm -rf "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core"

    再執行

    $ brew tap homebrew/core

    重新安裝 homebrew-core

    安裝完後,再回到前面的 brew install gnupg gnupg2 繼續

 

 

11. 重點2,安裝 Ruby on rails 的 Gem

$ gem install rails --no-document

 

 

這裡是我們第一次碰到 Gem 這個東西,在現代的開發裡面,幾乎不可能不用別人的程式作為基底或是相依性很高來開發。比方說光是個常見的使用者系統,就包含著使用者姓名是一欄、兩欄、三欄(姓、名、中間名),密碼長度與加密(相依別人的加密程式),明碼傳輸還是加密後傳輸,email 是不是要判斷是否收得到...等。詳細列完至少 30 條以上,看需求可能更多。

 

如果是一個剛入行的工程師,可能花了三個月後完成但整個網站也還什麼都不是,沒有主題光有使用者系統其實也沒什麼用。而且如果常瀏覽各大網站的話,會發現基本的功能都差不多。所以早期的工程師通常會做好自己的"軍火庫",等到要用的時候直接複製過去就好了,幾分鐘使用者系統就完成了。但是現在很多Open Source 的好心人或是像進度條一樣寫文章教人是一種商業手段(不然吃空氣嗎?)。所以很多工程師的軍火庫不需要自己創作,只要網路搜集使用就好了,當然進階使用還是會改內容,就像我們這邊的行為一樣。Ruby on Rails 是David Heinemeier Hansson 與他的公司提供的框架(軍火),使用的語言是Ruby。

 

然後我們要利用 Rails 這個框架改做內容成我們要的功能,這就是利用 Ruby on rails 來架設網站的另外一層含義。不過你可能會疑惑框架(Framework)、函式庫(Library)、套件(Package)這三個常聽到的詞有什麼差異。比較單純的想法就是框架由“一堆”函式庫組成,不過大多時候講框架都是指基底的函式庫組合。較少情況是會同時使用兩種框架在一個專案,但也不是不可能。然後下載下來無論是框架或是函式庫都是一包下下來,所以就是一個 Package (套件),在口語上很容易混著一起講。

 

回到 Gem,Ruby 的函式庫套件管理就是 gem,gem 同時是指令名稱與 ruby 套件的代稱。所以要看他在語句中的位置才能了解是什麼意思。

 

gem 這個指令是跟 Ruby 一起安裝的。當安裝完 RVM 後,Ruby 相關內容就會交由 RVM 管理。RVM 則是依靠 Ruby 版本來做分類的,所以沒事不要改 Ruby 的版本,不然會找不到 Gem。但是升級對安全性與效能有一定的幫助,所以就看個人需求。

 

所以 Ruby on rails 也是一個 gem,我們要先安裝它才能開始之後的設定。--no-ri 指的是不要 ri 這個文件工具與內容,--no-rdoc 也是類似的說明用途。現在都直接網路查,所以為了省空間可以不裝。如果不小心裝了,也不會發生什麼問題。


 

12. 安裝完以後可以檢查一下 Rails 的版本,現在的話應該都是 6.x.x 版。

$ rails --version

 

13. [可選擇] 安裝 VScode,

因為我們預期開始學習 Ruby on rails 的人應該已經對 HTML / CSS / JavaScript 有一定的掌握度。所以你應該會有自己習慣的編輯器。課程影片雖然當時是使用 Brackets 免費編輯器錄製,但是現在 VSCode 才是最多人使用的免費編輯器,所以免費編輯器的話,建議使用 VSCode 來做開發。

 

 

14. 在終端機進入要建立專案的資料夾

這邊考驗大家有沒有基本的 command line (指令列)常識。當打開終端機後預設會到這個使用者的家目錄,也就是 ~ 這個目錄。“~” 是一個代稱,他在每個使用者底下都"可能"代表著不同的路徑。以圖片 / 影片來說的話就是 /Users/swift 這個資料夾。

 

接著我們要開始建立 ruby on rails 專案,所以最好建立一個空的資料夾來放。

影片中有提到幾個指令,以下列出來。

a. $ ls               => 顯示當下資料夾所有包含檔案名稱

b. $ pwd           => 顯示當下路徑位置

c. $ cd [路徑]    => 進入路徑

 

 

這邊建議可以執行以下指令,這樣會進入桌面

$ cd ~/Desktop

 

15. 建立 rails 專案

$ rails new [專案名稱]

 

 

 

 

 

專案名稱可以隨意取,但是不能取名為test,會有問題。

執行後會開始一系列的安裝,需要等一下。

 

 

有可能會安裝失敗:請參考補充筆記

安裝rails 顯示安裝 Puma 失敗,gem install puma -v '5.3.1' --source 'https://rubygems.org/

 

 

這時候如果是Rails 5.x 就會成功,但是Rails 6.x 後會自動執行 rails webpacker:install 
執行它會需要NodeJS的幫助,所以需要安裝 NodeJS 與 yarn,這次會失敗。
 

 

 

16. 安裝NodeJS
NodeJS官網下載安裝檔,選擇長期維護版LTS
 

 

17. 利用Homebrew安裝Yarn

 

 

18. 安裝完畢以後,進入專案資料夾後,執行 rails webpacker:install
 

$ cd [專案名稱]

$ rails webpacker:install

 

 

 

19. 運行指令,並且打開網頁進入 http://localhost:3000
$ rails server   <= 可以縮寫為 rails s
(Ctrl + C 可以跳出)

使用瀏覽器觀看結果。



 

 

這樣子就可以進去首頁了!!
 

 

 


最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!

Medium picture

縱裕

錄課程錄到快死掉了啊!!!