其實之前剛換MBA時,就想來作個如何建構目前工作環境的筆記,以便日後如果有要重新設定時可以省去一些查資料的時間。結果沒想到被OSX內建的轉移工具陰到,時間都花在試著把專題code找回來,雖說最後還是功敗垂成……

直到前幾天在COSCUP上,遇到一位朋友剛買了新款MBA,問到要怎麼使用時,才想到積了這篇文章還沒寫,擇期不如撞日,就來寫吧。XD

XCode Command-line tools

首先,當然要先來裝包含了LLVM、Make等開發工具的command-line tools了。

有兩個方法:

  1. 於Mac App Store(MAS)安裝XCode,再開啟XCode,進入Preferences→Downloads,在Components tab中按下Command Line Tools該行的Install按鈕便會自動下載安裝。(當然,會詢問root密碼)
  2. 直接到 Apple Developer 下載安裝。

iTerm 2

就直接到 這裡 下載即可。

Oh-my-zsh

自從看了 vgod大神的推薦 之後,就全面改用zsh作為shell的首選。

而在oh-my-zsh這個包了許多功能的project出現之後,更是不用花時間去找.zshrc以及怎麼自行設定、擴充zsh,只要安裝之後就有內建許多功能可用,像是git、homebrew、rvm……等。

安裝也算簡單,只要一行指令即可:

1
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh

完成之後,就可以來編輯~/.zshrc來符合自己的使用習慣了,以下是我的一些設定:

1
2
3
4
5
#使用bira主題,更多的主題可參考 https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="bira"
#使用哪些plugins,可到~/.oh-my-zsh/custom/plugins/查看目前有安裝的plugins
plugins=(git brew rake ruby rvm gem osx github textmate)

最後別忘到iTerm 2的Preferences中,去更改Profile的預設shell為/bin/zsh。

homebrew

homebrew是OSX上的套件管理系統,不同於另外一套MacPorts,homebrew並沒有將環境分離開,而是直接裝於/usr/local/Cellar,並連結至/usr/local/bin中。

安裝homebrew與oh-my-zsh相同,一樣只要一行搞定:

1
ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)

使用方法也不難,以下是幾個常用指令:

1
2
3
4
5
6
7
brew doctor #檢查目前系統環境可能會有問題的地方
brew update #升級homebrew本身以及套件庫
brew search #搜尋套件
brew install [name] #安裝套件
brew remove [name] #移除套件
brew outdated #列出有新版的套件
brew upgrade [name] #升級上步所列出的套件,或是指定的套件

rvm

Ruby developer必備的環境管理工具。

安裝…… 同樣地簡單,現在真的很難找到不好安裝的工具的,至少在OSX上 :p

1
curl -L https://get.rvm.io | bash -s stable

接著在~/.zshrc下加入這幾行:

1
2
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

其餘的用法,可以參考高見龍前輩的 RVM and Gemsets 一文。

這邊列出的是我之前遇到問題時所寫的解決文章,供大家參考 :D

  1. Failed to Build Gem Native Extension Using Rvm on Lion ,這邊我比較懶,是直接link llvm-gcc到gcc,還沒有遇到過問題。如果打算用真正的gcc,請參考 [homebrew-dupes] (https://github.com/Homebrew/homebrew-dupes) 。
  2. X11 on OSX 10.8 Mountain Lion

本文『可能』會不定期更新,如果有任何疑問或內文有錯誤,還請提醒。 :p