很久没写博客来,最近没有深刻研究东西,因此写不出什么特别有技术含量的东西,可是,每周出产博客的习惯不能荒废掉,因此就写一下,这个星期学习的简单到东西。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版本便可。