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

工作中我们常常会因为各种软件技术要求在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真的很给力!

你可能感兴趣的:(centos6上使用fpm打python2.7 rpm包并兼容python2.6)