centos6上使用fpm打python2.7 rpm包并兼容python2.6

centos6上使用fpm打python2.7 rpm包并兼容python2.6

144 
作者 运维小兵_加油 
2016.09.22 00:28 字数 501 阅读 45评论 0

工作中我们常常会因为各种软件技术要求在centos6上安装python2.7 (比如说一些科学计算方面的应用),同时要求系统保留python2.6不动,因为yum是依赖于python2.6的,如果用python2.7覆盖系统默认的python2.6,那yum可能就实效了。

操作步骤

1 下载安装python2.7源包

    这个下载的是 Python-2.7.8.tar.xz

    解压 tar xvf Python-2.7.8.tar.xz

2. 编译安装

./configure --prefix=/usr/local 

 这个把python安装到/usr/local/下最后生成的可执行文件会到/usr/local/bin/python, /usr/local/bin 在系统环境变量中是在python2.6环境变量位置/usr/bin之前,所以在这个位置安装python2.7系统就会默认使用python2.7, 同时yum依赖的python2.6 /usr/bin/python 没有任何变化.

make && sudo make install DESTDIR=/tmp/installdir-python27

这个/tmp/installdir-python27这个目录是临时文件夹用来专门给 fpm打包用的.

3. 安装pip2.7

wget https://bootstrap.pypa.io/get-pip.py

/tmp/installdir-python27/usr/local/bin/python2.7 get-pip.py

#这样pip2.7就会安装到临时文件夹/tmp/installdir-python27/usr/local/bin/下面,不过/tmp/installdir-python27/usr/local/bin/pip2.7中的头部python引用地址会多了/tmp/installdir-python27,把它改成/usr/lobal/bin/python2.7就ok了。

4. fpm 打包

fpm -s dir -f -t rpm -n python  --epoch 0 -v '2.7.8' --verbose  --description 'python2.7.8 build' --url 'www.easemob.com' --license 'BSD'  -C /tmp/installdir-python27 .

执行过后,python-2.7.8-1.x86_64.rpm 就会在当前目录生成。

5. 安装新的python2.7 rpm包

为了更方便的在各个centos6系统中快速的安装python2.7, 我们可以把python2.7 rpm放到yum源中(如果已经有yum源了,可以直接copy过去,并执行createrepo --update /repo/path 来更新yum仓库)。

当然可以直接copy到centos6,直接安装rpm -ivh 

大功告成,fpm真的很给力!

原文地址:https://www.cnblogs.com/flintlovesam/p/6594635.html