2012年11月28日 星期三

[宅] 在mac上的pg gem設定

在為我的rails專案安裝pg gem時發生了一直找不到pqlib,為了解決這個問題花了超多時間,後來發現原來mountain lion預設安裝postgres,依照這篇文章的教學安裝了gcc(https://github.com/kennethreitz/osx-gcc-installer),結果有找到pqlib,卻在下一步失敗,原因是找不到Development資料夾。

後來依照這篇修改xcode路徑:
sudo xcode-select -switch /Applications/Xcode.app
又往前邁進了一步,但仍舊是失敗,原因似乎是make的時候出了問題。

後來在Rails meet-up請人幫我檢查可能的原因,發現有可能是因為我用了home brew來安裝ruby的關係,但是又沒做好相關設定,所以gem在找libary的時候會找錯路徑
所以當下果斷移除brew所安裝的ruby,再安裝rvm,而rvm安裝的過程中就會幫你安裝最新版的ruby。結果....
發現我已經裝了rvm啦!(什麼時候裝的Orz)
但是用"rvm list"這個指令來檢查發現rvm下並沒有安裝任何ruby,這個原因也搞不太清楚,但是反正不難解決就不去探究,於是怒裝ruby 1.9.3
rvm install 1.9.3

正要bundle install時,原本我是要用sudo身分來安裝的,但是大大說沒有必要,甚至用sudo身分安裝的gem可能會無法在一般身分下執行
怒"邦豆"一發
bundle install
終於成功了,宅宅終於可以在很潮的mac上開發rails了~:.゚ヽ(´∀`。)ノ゚.:


心得

安裝ruby最好還是用rvm,其他與開發環境較無關的套件再用brew來安裝


後記

為了貪圖方便,在開發時我是使用postgres.app,啟動方式很簡單,只要開啟程式,本機端就有資料庫了。它會預設以使用者的名字創建一個user和資料庫,在終端機輸入:"psql"就會直接登入這個資料庫。
如果出現訊息說找不到server,可以先用"which psql"來檢查psql所在位置,如果之前就已經安裝了原生的postgres,很有可能回傳"/usr/local/bin/",這樣代表我們並不是用app所提供的bin。
這時就要更改路徑,app自己的psql才會找到app所啟動的server:
PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
要建立自己的資料庫可以在終端機輸入:
createdb <"資料庫名稱">

然後在rake db:migrate時發現還是有問題,改為這樣執行:
bundle exec rake db:migrate