分類
About Mike

Rails 6 setup on Mac M1 (Big Sur 11.2.3)

最近試著用比較新的蘋果M1晶片電腦去跑Rails專案,光是設定上就踩到不少的雷,網路上也沒有相同的設置解法分享,自己簡單的紀錄一下,不過如果是跑最新版的各種軟體,我相信應該M1都有支援不會遇到這麼多雷。

最近試著用比較新的蘋果M1晶片電腦去跑Rails專案,光是設定上就踩到不少的雷,網路上也沒有相同的設置解法分享,自己簡單的紀錄一下,不過如果是跑最新版的各種軟體,我相信應該M1都有支援不會遇到這麼多雷。

Requirement

在Mac M1 BigSur 11.2.3 上跑 Ruby on Rails 6 with Ruby version 2.6.3 and MySQL 5.7

首先,第一步絕對不能錯,這步錯了後面怎麼設定可能也設定不好;在Mac terminal上要使用 “Open Using Rosetta” 來開啟並作後續的安裝。

在terminal上按右鍵,點擊Show in Finder
點擊 Get Info
勾選 Open using Rosetta

後續使用terminal安裝ruby-build就不會遇到問題了,不然光是安裝ruby-build我是怎麼裝都有errors…

再來是安裝Ruby,雖然系統已內建 Ruby2.6.3 ,但這個版本的Ruby跑在m1上會出現各種packages gem error,所以至少要使用2.7.2版,如果你可以用2.6.3跑,拜託拜託讓我知道怎麼設定。

安裝Rails比較不是問題,基本的gem install指令即可:

gem install rails -v 6.0.0.0

最新版的 node V16 也是會有一些packages尚未有支援m1的錯誤產生,建議使用 nvm來做安裝使用 v14 即可,詳細安裝方式網路有很多教學,這邊就不多做介紹。

最後由於專案是使用MySQL資料庫而非多數Rails開發者使用的PostgreSQL,加上Mac M1預設安裝好的MySQL版本是8,現有專案的資料庫轉移會出現一些問題,於是必須要降級 downgrade to 5.7,我嘗試了各種安裝MySQL 5.7版本的方式,不管是系統安裝、homebrew安裝全都失敗,不是裝了但無法啟動,就是裝一半會有makefile issues,最後解法是用外嵌於系統上的資料庫來解決:MAMP to the rescue!

https://www.mamp.info/en/downloads/older-versions/

剛剛好MySQL的版本是5.7,透過 mysql2 gem來做bundle後,修改database.yml裡的socket連線設置即可完成Rails的設定。

development:
  -- 其餘略過
  socket: /Applications/MAMP/tmp/mysql/mysql.sock

以上分享,總體來說M1跑起來的確是快非常多。

作者: matrixki

Software Engineer / Entrepreneur / Dreamer

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *