因为一个项目的安装用的是fab python.py的方式,所以这次的任务是在比较老的系统centos6.8上安装fabric。
fabric对python的版本要求比较高,至少2.7+。而centos6.8默认是2.6。
安装步骤:
1.下载编译安装源码包的python
在编译之前先要做一些准备工作,否则后面可能遇到一些问题,这些坑已经填了,希望大家就不要再掉下去:
(1)安装openssl,openssl-devel,gcc-c++
(2)编辑Moudule/Setup.dist 中的以下几行:
#SSL=/usr/local/ssl #_ssl _ssl.c \ #-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ #-L$(SSL)/lib -lssl -lcrypto复制
将这几行的注释去掉(不然运行python xxx可能遇到 the ssl module in Python is not available 的错误)
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz复制
将这行的注释去掉(不然运行python xxx可能遇到 zlib not available的错误)
(3)常规的几个编译安装动作
./configure --prefix=/usr/local/python2.7
make
make install
2.重新链接以下python的执行文件
ln -fs usr/local/python2.7/bin/python2.7 /usr/bin/pythonln -fs /usr/local/python2.7/bin/python2.7 /usr/bin/python2.7 --这个为后面安装setuptools做准备,不然会报错exec: python2.7: not found复制
完成后,验证版本 python -V ,看是否是预期的2.7而非2.6
3.安装setuptools
后面安装pip(https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg)需要setuptools,所以需要先安装,不然python setup.py install的时候可能会报错No module named setuptools。
下载 setuptools-0.6c11-py2.7.egg ,然后执行sh setuptools-0.6c11-py2.7.egg 即可
4.安装pip
下载 pip(https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9),解压,执行python setup.py install
安装好之后,重新链接以下pip的执行文件
ln -fs /usr/local/python2.7/bin/pip /usr/bin/pip复制
5.安装fabric的相应包
安装fabric需要一些依赖的python包,如paramiko等。
因为这次任务的环境是内网环境,故采用的办法是,先在外网找一个6.8的机器,然后用pip downloadonly fabric的方式,将相应的whl文件下载下来再拷贝到内网环境上。
最后执行 pip install Fabric-xxx-py2-none-any.whl即可
安装好之后,重新链接以下fab的执行文件
ln -fs /usr/local/python2.7/bin/fab /usr/bin/fab复制
安装完之后在linux下,执行下fab命令,看是否正常执行即可。
6.一些补充:
由于yum使用了原来python2.6的一些脚本,所以需要将yum重新指向原来的python2.6解释器才可以使用
修改/usr/bin/yum 将最上面的路径修改为: #!/usr/bin/python2.6