1、测试环境描述

系统 SuSE 11 sp2

因为是生产环境无法访问外网,所以搭建环境都是离线环境下源码安装的。


软件包:

Python-2.7.11.tar.xz  

setuptools-7.0.tar.gz

pycrypto-2.6.1.tar.gz   

yaml-0.1.4.tar.gz

PyYAML-3.11.tar.gz       

MarkupSafe-0.9.3.tar.gz  

Jinja2-2.7.3.tar.gz     

ecdsa-0.11.tar.gz     

paramiko-1.15.1.tar.gz  

simplejson-3.6.5.tar.gz

ansible-1.7.2.tar.gz 


如果顺利的话一次编译上边的源码包就可以完成环境的搭建,但是我的环境中在刚开始编译python的时候就出现了问题 


2、问题描述及解决过程

ansible需要python的支持,我们的环境中都是python2.6的,网上看好多文章都说到使用python2.7版本会比较好,在之后依赖性的问题会比较少,说做就做,结果在编译python的过程中折腾了老半天,下面详细记录遇到的问题。


环境原本的python环境

server:/ansibletest # python

Python 2.6 (r26:66714, May  6 2011, 15:10:21) 

[GCC 4.3.4 [gcc-4_3-branch revision 152973]] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> 


备份python脚本


server:/ansibletest # mv /usr/bin/python /usr/bin/python.bak


server:/ansibletest # xz -d Python-2.7.11.tar.xz 

(如果环境中没有xz命令说明还需要编译xz工具)


server:/ansibletest # tar -xf Python-2.7.11.tar


server:/ansibletest # mkdir src


server:/ansibletest/Python-2.7.11 # ./configure --prefix=/ansibletest/src/python27


server:/ansibletest/Python-2.7.11 # make


make出错

linux-3qo7:/ansibletest/Python-2.7.11 # make

Failed to build these modules:

_curses            _curses_panel      _hashlib        

_ssl    


出现上边的错误如果不解决的话之后在编译ecdsa-0.11.tar.gz 的时候就会出现下面的错误

ERROR:root:code for hash md5 was not found.