一開始想要入手一套需要自行編譯或是環境設定的開源軟體時,往往會遇到不知道怎麼樣安裝的問題,這邊就用一篇文章說明要如何設定好 ONOS 開發環境。
下面以 bash 為範例,基本上 OSX 跟 Ubuntu 僅在設定 JDK 環境時稍微不同,其他都一樣。

相關步驟如下:

1. 下載 ONOS

透過 git 工具(可能需要先安裝)將原始碼下載下來

git clone https://gerrit.onosproject.org/onos

2. 環境變數

將 ONOS 裡的環境參數檔案引用自家目錄的 .basrc 當中( ~/.bashrc

export ONOS_ROOT="[這邊填上你的 ONOS 根目錄]"
source $ONOS_ROOT/tools/dev/bash_profile

設定完之後記得重新啟動 shell 或是重新載入 bash 設定

3. 安裝其他需要用到的工具

OSX

前往 JDK 的網站下載 JDK 安裝包進行安裝即可

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Ubuntu(參考資料:ONOS wiki

安裝 JDK

sudo apt-get update && \
sudo apt-get install software-properties-common -y && \
sudo add-apt-repository ppa:webupd8team/java -y && \
echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections && \
sudo apt-get install oracle-java8-installer oracle-java8-set-default -y

安裝 curl 工具(如果沒有的話)

sudo apt-get install curl

4. 編譯 ONOS

原則上環境參數以及相關工具設定完成之後,即可開始編譯 ONOS,編譯很簡單,移動到 ONOS 根目錄中執行以下指令即可:

buck build onos

在完全新的環境下,buck(onos-buck)工具會自動去下載需要的東西(主要是更新 buck 程式)。

buck 自動下載完成之後,就會開始編譯,編譯後大概會看起來像是這樣:

Not using buckd because NO_BUCKD is set.
[-] PROCESSING BUCK FILES...FINISHED 4.5s [100%] 🐳 New buck daemon
[-] DOWNLOADING... (0.00 B/S AVG, TOTAL: 0.00 B, 0 Artifacts)
[-] BUILDING...FINISHED 39.7s [100%] (1/1 JOBS, 0 UPDATED, 0 [0.0%] CACHE MISS

有出現「Not using buckd because NO_BUCKD is set.」這是正常的,因為有時候 buckd 會造成編譯上的問題,所以負責處理編譯的人把它關掉了。

5. 在本機上執行 ONOS

編譯好後就可以啟動 ONOS 了,在本機上面啟動很簡單,僅需要輸入以下指令:

buck run onos-local -- clean debug

後面兩個參數為:

clean:將上一次執行的資料清除,像是設定檔、啟動的 App,或是其他暫存之類的

debug:開啟 debug 模式,此時會在本機開啟一個 debug port(預設為 TCP 5005)

這兩個參數都可以不加,直接執行 ONOS:

buck run onos-local

或是直接透過 ONOS 已經設定好的 alias 來執行:

ok clean debug # 等同於 buck run onos-local -- clean debug

執行後會看到一連串 ONOS 的 log,此時 ONOS 已經開始執行了,而 ONOS 會在機器上面開啟一個 ssh port(預設為 TCP 8101),我們可以在新的視窗中使用以下指令連上 ONOS:

onos localhost

這個指令等同於

ssh -q -p 8101 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null localhost

連上之後即可開始使用 ONOS CLI,而要離開 ONOS CLI 僅需要使用 exit 或是 ctrl+D 即可,無需擔心離開 CLI 時會將 ONOS 關閉。

而如果要將 ONOS 關閉,則需要回到剛剛執行 ONOS 那邊,按下 ctrl+C 即可

 

Share Your Thought