Skip to content

setup mac development

Tsung-Shuan Liu edited this page Mar 27, 2014 · 26 revisions

Rails on Mac 安裝最佳實務

強烈警告:請絕對不要跳著裝!如果疏漏步驟有可能導致無法復原需要重灌。

系統套件

  1. 進行 Mac 系統更新到 10.9 Mavericks
  2. 從 Apple Store 下載 Xcode 5.0.4
  3. Xcode -> Preferences -> Downloads tab then install the “Command Line Tools.” 最新版 Xcode 內建

安裝 Homebrew

   $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
   $ brew install git
   $ brew update
brew tap homebrew/dupes
brew install apple-gcc42

安裝 XQuartz

安裝 ImageMagick 需先有 X11 的 support,OSX 10.8 拿掉了...

http://xquartz.macosforge.org/landing

ImageMagick / MySQL

  • 安裝 Imagemagick
   $ brew install imagemagick
  • 安裝 MySQL
$ brew install mysql
$ unset TMPDIR
$ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
$ mysql.server start
$ mysqladmin -u root password '123456'
$ mkdir -p ~/Library/LaunchAgents
$ find /usr/local/Cellar/mysql/ -name "homebrew.mxcl.mysql.plist" -exec cp {} ~/Library/LaunchAgents/ \;
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

若無法順利進行安裝,可換下載 MySQL官網 上的 Mac OS X ver. 10.6 (x86, 64-bit), DMG Archive 來安裝 MySQL。

安裝 RVM 與 Ruby 2.0

在建制 Rails 環境的時候,我們可能會有跑不同版本的 Ruby 或者不同的 getsemt 的需求。Ruby Version Manager 是一個能夠讓我們用很優雅的方式切換 Ruby 版本的工具。同時使用系統 Ruby,其實很容易弄髒環境和產生一些靈異現象的 bug。於是我們在建制環境時,通常第一時間就會裝起 RVM。

安裝 RVM

$ \curl -L https://get.rvm.io | bash -s stable
$ . ~/.profile
$ source ~/.profile

安裝 Ruby 2.0

$ brew install libyaml
$ rvm pkg install openssl
$ rvm install 2.0.0\
    --with-openssl-dir=$HOME/.rvm/usr \
    --verify-downloads 1
$ rvm use 2.0.0

注意

使用 RVM 安裝 gem 和 passenger-install-apache2-module 不需要加上 sudo , 因為使用 sudo 會使用非 RVM 的 ruby 環境, 安裝目錄也不一樣.)

安裝必要 Ruby gems

$ gem install rails --version 4.0.2
$ gem install mysql2
$ gem install capistrano
$ gem install capistrano-ext
$ gem install delayed_job
$ gem install hoptoad_notifier
$ gem install facebooker2
$ gem install factory_girl

安裝 PostgreSQL (for 發佈免費網站空間 Heroku前置作業)

$ brew install postgresql
$ gem install pg

設定 HTTP Server

使用 Pow

使用 Pow 作為 HTTP Server

Pow37 Signals open-source 出來的一套 Rack Server。其標榜的就是 Zero Config。

Pow 的原理原理是攔截 routing,導到 Pow 上。所以新增 project 不需要更改 /etc/hosts 就會生效。也因為 Pow 是 rack-based,支援 rack 的 framework 掛了就能跑。

相較起來,以往的 Passenger 搭配 Mac 本機端的 apache 的 solution 就顯得太笨重了。

Installation

Pow 的安裝相當簡單。

$ curl get.pow.cx | sh

即完成安裝。

Setting

Pow 預設的目錄是在 ~/.pow 下。

因此若要讓 project 跑在 Pow 之下。以我的 wiki 為例 :

cd ~/.pow/ ln -s ~/projects/wiki

打開瀏覽器,輸入 http://wiki.dev 就完成了。以往的 http://localhost:3000/ 實在太噁心了,別再用它了!

Note

或者是直接在 project/wiki 下打 powder link 也可以。

使用 Powder 管理 Pow

Powder 是後來衍生出來的一套管理工具。

因為 Pow 的管理有點不易,所有有人寫了這個工具把一些常用的功能包裝起來。

安裝方法:

$ gem install powder

通常我只拿來做 powder restartpowder log 而已。

注意事項

若電腦預設非使用系統 Ruby 的開發者需注意此點。Pow 很可能會抓到系統 Ruby 及其 gemset 而無法啓動。我個人的解法是安裝 RVM 管控 Ruby,再在欲使用 Pow 之 project 目錄放置 .rvmrc 即可。

.rvmrc 內容如下:

rvm 2.0.0

解決使用 Pow 後,無法掛上 PHP project 的問題

請參考 Legacy development with Pow 一文。原理是利用 rack-legacy 以及 rack-rewrite。

Clone this wiki locally