很久沒寫博客來,最近沒有深刻研究東西,因此寫不出什麼特別有技術含量的東西,可是,每週出產博客的習慣不能荒廢掉,因此就寫一下,這個星期學習的簡單到東西。html
關於buildbot,它是基於python的一個可持續集成的自動構建框架,詳細的介紹能夠參考官網上的說明:http://docs.buildbot.net/current/manual/introduction.html,後期我將會進行深刻學習,而且翻譯該介紹發佈到博客來。python
其實呢,網上仍是有不少該環境搭建說明的,可是不少都是複製別人而後發佈到博客上就算了的,我我的是不大喜歡這樣子到,由於第一方面,沒有本身到觀點,第二方面,可能實際遇到到一些問題,沒有提到,讓不少人百思不得其解,第三方面,致使網絡數據冗餘,咱們搜索想要的答案時,會出現一堆重複到答案,讓本身感受到厭倦與煩躁。sql
好了,直接進入主題吧.ubuntu
首先,個人環境是python2.7,爲何不選用3.x呢?python3.x
1)buildbot官網上推薦使用這個版本網絡
2)python3.x相對於python2.x有很大到改變,基本上能夠說3.x不向上兼容,因而形成當前不少2.x到庫不能在3.x上運行框架
2)目前網絡上不少資料和庫都算基於python2.x的python2.7
接着就講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}來進行解壓
兩種方式都是直接解壓到當前目錄下的。
按照官網上說的執行如下兩步命令:
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版本便可。