buildbot環境搭建—master篇
好久沒寫部落格來,最近沒有深入研究東西,所以寫不出什麼特別有技術含量的東西,但是,每週出產部落格的習慣不能荒廢掉,所以就寫一下,這個星期學習的簡單到東西。
關於buildbot,它是基於python的一個可持續整合的自動構建框架,詳細的介紹可以參考官網上的說明: http://docs.buildbot.net/current/manual/introduction.html ,後期我將會進行深入學習,並且翻譯該介紹釋出到部落格來。
其實呢,網上還是有很多該環境搭建說明的,但是很多都是複製別人然後釋出到部落格上就算了的,我個人是不大喜歡這樣子到,因為第一方面,沒有自己到觀點,第二方面,可能實際遇到到一些問題,沒有提到,讓很多人百思不得其解,第三方面,導致網路資料冗餘,我們搜尋想要的答案時,會出現一堆重複到答案,讓自己感覺到厭倦與煩躁。
好了,直接進入主題吧.
首先,我的環境是python2.7,為什麼不選用3.x呢?
1)buildbot官網上推薦使用這個版本
2)python3.x相對於python2.x有很大到改變,基本上可以說3.x不向上相容,於是造成當前很多2.x到庫不能在3.x上執行
2)目前網路上很多資料和庫都算基於python2.x的
接著就講buildbot的環境搭建吧,buildbot 的環境搭建方式有多種,分別是
1)通過 sudo apt-get install buildbot ,然後就會線上幫助你安裝所有到相關的東西,不僅僅是buildbot-master, 包括buildbot-slave等等,但是我不喜歡這種方式,感覺不可控,因為我到ubuntu不是很熟悉,所以我不知道它裝在哪裡了,只知道在user/bin下有buildbot和buildbot-slave這兩個可執行檔案。
2)通過easy_install或者pip安裝,這個也算官網上推薦的最簡單的安裝方法,見網址: http://trac.buildbot.net/wiki/DownloadInstall ,但是,由於我個人網路問題,總是安裝到一半就卡住了,於是我也沒有使用這種方式。
3)直接在官網上下載相應的壓縮包,解壓執行setup,py檔案進行安裝。
上面到三種方式中,我們主要講解第三種方式吧,其實這種方式是間接到通過python指令碼呼叫easy_install來進行安裝的,好吧,現在我們開始講解吧。
一、安裝包的下載
進入 http://trac.buildbot.net/wiki 下載master壓縮包
1)如果下載的是tar.gz 壓縮包,就使用 tar -zxvf {buildbot master} 來進行解壓
2)如果下載的是.zip壓縮包,就使用 unzip {buildbot master} 來進行解壓
兩種方式都是直接解壓到當前目錄下的。
二、master的安裝
按照官網上說的執行以下兩步命令:
python setup build
sudo python setup install
其實呢,第一步python setup build這部可以不執行。
注意:
如果沒有安裝easy_install,先執行命令 sudo apt-get install python-setuptools 來進行安裝,前面有說到,setup.py指令碼中會呼叫到easy_install來進行安裝。
當然,如果你是剛裝了ubuntu,直接利用ubuntu自帶到python的,就要執行命令
解壓後進入master目錄下,按照官網上說到的執行 sudo apt-get install python-dev 安裝python-dev,否則會遇見錯誤 Setup script exited with error: command 'gcc' failed with exit status
安裝了之後,我們可以通過執行 buildbot --version 來檢視是否安裝成功。
基本上,安裝就這兩步,但是,在這過程中,總會遇到一些問題對吧,比如網路問題,很坑到,下面我給出一些建議吧。
1)先按照上面到步驟執行setup.py檔案,如果遇到網路問題到,安裝指令碼一直卡在那裡不懂很久,可以先中斷執行,然後複製控制檯上顯示到那個網址,自己上去下載對應到版本來安裝。然後再次啟動指令碼進行安裝是可以檢測到它已經安裝了的。這個得 注意版本相容問題 哦,當然,自動終止來也可以這麼做。
2)我在安裝之後,進行buildbot create-master master的時候,總是報錯一個錯誤 ImportError: cannot import name exceptions ,然後很坑,我找了半天,其實這個時候,去官網檢視尋找答案是最好的來。具體的錯誤描述見: http://trac.buildbot.net/ticket/2476 ,在這個網站上,我們可以看到問題描述中到一句話:due to an incompatibility with sqlalchemy-migrate==0.7.2 and SQLAlchemy==0.8.0,經過一番研究,從SQLAlchemy Migrate 的官網 https://sqlalchemy-migrate.readthedocs.org/en/latest/ 上我們可以看到這麼一句話
Currently, sqlalchemy-migrate supports Python versions from 2.6 to 2.7. SQLAlchemy Migrate 0.7.2 supports SQLAlchemy 0.6.x and 0.7.x branches.
說明這個最新版本到 SQLAlchemy Migrat 僅僅支援 0.7.x版本的SQLAlchemy 0.7.10,所以如果你那裡出現來這個問題,那麼就是版本衝突問題來,只要把 SQLAlchemy 換成 0.7.10 版本即可。