iT邦幫忙

DAY 1
2

Ruby on Rails 花招百出系列 第 1

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上安裝最簡單的方法,假如平常都有做善事,基本上只要9件事情,就可以順利安裝。
($符號代表你command line每一行的開頭符號,並不用將這個符號打出來)

  1. 安裝Xcode xcode:打開appstore、搜尋『xcode』,下載安裝

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

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

    如果有變,請參照官網說明:http://brew.sh/
    3. 有些xcode版本並不會主動安裝command line tool,這個工具在接下來安裝Ruby gem時為必要工具,我們可以藉由安裝xcode-select來安裝command line tool:
    $xcode-select --install
    4. $brew update
    Ruby on Rails同時也依附其他工具的使用,例如版本管理工具git、資料庫sqlite或mysql,這些也要在安裝Ruby前進行安裝
    5. $brew install git
    6. $brew install ruby
    7. $gem install sqlite3
    8. $gem install rails

Linux Ubuntu

打開終端機或Terminal,連續下四個指令:

  1. $sudo apt-get update

2. $ sudo apt-get upgrade

  1. $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

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

輸入 $ruby -v 及 $git --version,若有版本號碼出現,就是有安裝成功

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

  1. 無法安裝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新手村

都會有熱心的高手提供解答!但在尋求協助時,請務必將作業系統、錯誤訊息、安裝步驟、已安裝的步驟都列出來,大家才好幫忙喔!

本文同步刊載於本人部落格:特快車


下一篇
Rails遇上問題,該如何搜尋及發問?
系列文
Ruby on Rails 花招百出32

1 則留言

0

讚唷
記得去年也有一位是鐵人是寫這主題
可惜大概公事太忙
只練到10天左右

我要留言

立即登入留言