Ruby on Rails 安裝教學彙整&心得


對想要學習WEB開發的人來說,Ruby on Rails已經不是很陌生的技術,到Inside求職頁上四處可見徵求Rails工程師的工作,到處都有學習資源,只要在Google上搜尋 Ruby on Rails不管中英文都有非常多可以參考的資料。

教學資源

不過對於想要學習的新手來說,安裝Ruby on Rails的開發環境並不是一件簡單的事。這邊幫大家彙整幾個很常見的資源:

Ruby官方網站

ihower的Ruby on Rails實戰聖經

RailsBridge Docs

Treehouse (Mac)

Treehouse (Windows)

Rails 101

注意,雖然以上資源都可以利用,但大家都知道在程式語言的領域都需要一點運氣,如果在某一種安裝方法中卡關了,請參考其他資源看看有沒有其他方法。再怎麼鳥的狀況都會有解法,本人安裝Ruby裝了兩天才裝起來,VM拆了又裝、裝了又拆,相信大家只要有點耐性,不會比我來得更慘。

快速安裝方法

Mac

由於本人在Mac上安裝Ruby經驗最豐富,因此以下提供在Mac上安裝最簡單的方法,假如平常都有做善事,基本上只要幾個步驟,就可以順利安裝。 ($符號代表你command line每一行的開頭符號,並不用將這個符號打出來)

首先,安裝Xcode:打開appstore、搜尋『xcode』,下載安裝。

安裝完成以後打開終端機(在應用程式或Launchpad中搜尋terminal或"終端機"),並安裝brew,如果指令沒有變,就是:

$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

如果指令不同,請參照官網說明:https://brew.sh/

有些xcode版本並不會主動安裝command line tool,這個工具在接下來安裝Ruby gem時為必要工具,我們可以藉由安裝xcode-select來安裝command line tool:

$ xcode-select --install
$ brew update

Ruby on Rails同時也依附其他工具的使用,例如版本管理工具git、資料庫sqlite或mysql,這些也要在安裝Ruby時一同進行安裝

$ brew install git

有些資源會建議安裝rvm,但最簡單的方法就是直接從brew上面安裝

$ brew install ruby
$ gem install sqlite3
$ gem install rails

Linux Ubuntu

打開終端機或Terminal:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev
$ \curl -sSL https://get.rvm.io | bash -s stable --ruby  --rails

Debug

基本上,人生總會遇到困難,就像吃飯一定會掉飯粒一樣,如果在安裝過程中遇到莫名其妙的錯誤,請不要氣餒,如果每個人都一帆風順,世界上就不需要那麼多教學資源了。遇到任何錯誤,請到Google上搜尋相關錯誤,請用英文搜尋『ruby install』再加上你遇到的錯誤訊息。以下我提供自己遇過的狀況,給大家當做參考:

1. Ruby版本與最新版差異太大

本人第一次安裝Ruby時當時版本是2.0.0,但本人安裝時卻遇到安裝了1.8.7,很不幸遇到一個超級大鴻溝,很多相容性問題,因此必須採用其他安裝方法。

在使用brew安裝完Ruby以後,請輸入

$ ruby -v

來檢查版本,看與Ruby官網上的版本是否差異過大。

假如很不幸的因此產生很多版本問題,例如說不斷出現"Incompatible Ruby Version"的提示訊息,這時候我們就需要救星rvm (Ruby Version Manager)來幫忙。儘管有許多人認為rvm是個爛東西,但對新手來說rvm邏輯簡單,是一個非常好的解決方案。請到rvm官網上查看。 通常輸入以下指令,就可以順利安裝ruby和rails:

$\curl -sSL https://get.rvm.io | bash -s stable --ruby --rails

2. 無法安裝sqlite、pg等資料庫的gem

假如你不知道gem是什麼,基本上可以當成是Ruby語言的外掛,因為我們不可能每個東西都從頭開始刻,有些東西的串連也必須是要跨領域的專家才了解,所以這些外掛可以幫助我們快速的建立起一些我們需要使用的功能。

在安裝各種Ruby gem時,例如輸入

$ gem install sqlite3

有一個容易出現的錯誤訊息是:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

OMG你一定會愛死這個訊息,因為他三不五時就會出現,而且對新手來說出現的機率可以高達95%,更重要的是有很多可能的原因。

第一個原因是你沒有將command line tool安裝完成,所以請檢查xcode是否有正確安裝command line,假如剛剛有照安裝步驟安裝xcode-select,就一定是有安裝了。

第二個原因是某些版本的xcode比較腦殘,沒辦法直接將gem轉換成可以安裝的格式,因此我們需要在安裝gem時額外輸入一個指令:

$ ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install sqlite3

上方的sqlite3可以替換成其他gem的名稱

假如真的還是無解,建議可以從brew來安裝,例如pg和mysql都可以從brew來安裝。

$brew install postgresql
$brew install pg

希望大家都能夠安裝順利喔,最後提醒,Google是大家的好夥伴,Stackoverflow也是大家的好夥伴,如果英文夠好,這兩個資源就可以得到非常多協助。

中文部分可以到

Rails Fun

Rails新手村

都可以得到非常豐富的解答,但在尋求協助時,請務必將作業系統、錯誤訊息、安裝步驟、已安裝的步驟都列出來,大家才好幫忙喔!