要開始開發 Firefox OS 的 Web 端(Gaia),並不像開發一般網站一樣那麼容易。在開始改網頁之前,通常要把相關的開發文件讀一遍 / 試一遍,才能順利把開發環境設定好。 而把環境設定好可能已經花了半天時間,這時原本想要改程式的精力也所剩不多了。
去年有感於此,花了些時間整合了一套快速設定 Firefox OS 開發環境的工具「FoxBox」,透過 Virtualbox 虛擬機與 vagrant 自動化工具來達成自動部署 Gaia 的開發環境。最近把 FoxBox 基礎作業系統版本升級了一下(使用 Ubuntu 14.04LTS),在 Macbook 或 Ubuntu 桌面電腦上,只需用一個小時左右的時間,就可以自動安裝好整套開發環境。
Vagrant + VM 的優點
使用 Vagrant 搭配虛擬機(VMWare 或免費的 Virtualbox)的好處多多,其一是簡化了開發環境的需求,由於主流的作業系統(Windows,Mac,Ubuntu/RedHat)都支援虛擬機,透過在虛擬機上使用單一的作業系統,可以大幅簡化安裝指令。 其二則是自動化安裝,透過 Vagrantfile 指定要執行的指令 (放在 scripts 資料夾下),最後跑出來的結果只有安裝成功一種。如果失敗了表示自動安裝的指令沒寫好,初級開發者不用在環境安裝時就強迫得學太多細節。 其三是開發環境隔離,命令都跑在 VM 中,在之後開發或升級的過程中出現任何問題,隨時都可以重新建立一個乾淨的開發環境。
使用 FoxBox 這套開發環境設定工具,當其他人碰到問題時,也可以更容易地重現問題。
透過 Vagrant 設定,FoxBox 提供實體機與虛擬機共享檔案夾,並支援 USB 實機偵錯。
雖然開發環境隔離,但是 FoxBox 預設的設定即提供實體機與虛擬機共享檔案夾。裝好開發環境後,你依然可以使用目前作業系統上自己習慣的編輯器來修改程式碼,然後在 VM 中執行命令。
FoxBox 預設也將 USB port 串接到 VM 中,所以在 VM 中也可以直接接收到實機的偵錯訊息 。
設定的流程
連上網路,在主機上執行以下命令
$ git clone https://github.com/gasolin/foxbox.git $ cd foxbox $ ./configure.sh 除了開始時需要指定網路介面卡,並輸入主機的密碼(用來和虛擬機共享檔案夾)外,其中大部分的流程都是自動化的。
當 VM 跑起來後,登入 VM(帳號 / 密碼為 vagrant/vagrant)並執行以下命令:
> $ gaia_init.sh
> $ cd gaia
> $ make`
即可順利編譯好 Firefox OS 的 Web 端(Gaia)程式碼囉!