Centos 安装Python2.7.10 有更新!

  |   0 评论   |   3,005 浏览

    为了测试 mesos,搞了一个 centos7.1,使用最小化安装,然后自己安装了 net-tools,“开发工具”集。后来想装一下 DCOS Cli工具,结果发现 python 的 pip 不可用。

    搜了一下,发现 Centos7自动的 python 版本为2.7.5,不带 openssl 加密,而要下载的东西都是 https 的,找了好久,希望能让 pip 忽略 https 的验证无果。查到一个信息,说是2.7.9以上版本自带了 openssl 插件。好吧,试试这个吧!
    

    1、安装一堆需要的软件包,之所以搞了两天,完全是被这些坑的,一步一个坑啊!

    yum -y install openssl openssl-devel ncurses-devel.x86_64 bzip2-devel sqlite-devel python-devel zlib

    2、下载 python2.7.10源码包,解压到一个临时目录中,我就放在/tmp 下了

    wget [https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz](https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz)
    
    tar zxvf Python-2.7.10.tgz
    

    3、编译

    编译前,注意一下,configure时候要使用"--enable-shared",表示生成动态链接库。(不然后面编译mod_wsgi会出错)仅使用这一项也不够,开始仅使用--enable-shared选项,发现编译完成后,进入Python2.7.10目录,执行python、python2、python2.7在终端都是返回python2.7.5的提示符。所以,在执行configure命令的时候,还要加上"-rpath"选项,这个代表是否将生成的库安装在软件的安装目录,默认是在安装目录,否则自己指定路径。
    
      先建立一个目录,不然后面configure的时候会出错:
    
    mkdir -p /usr/local/python/2.7.10/lib
    
    ./configure --enable-shared --prefix=/usr/local/python/2.7.10 LDFLAGS="-Wl,-rpath /usr/local/python/2.7.10/lib"
    
    make && make install && make clean
    

    4、切换新版本

    此处一定要把原来的 python2.7.5保留,我开始是直接覆盖了老版本,结果发现 yum 不能用了,费了无数劲,也没搞定,只好重装了系统,反正是测试的虚拟机(不过第二天找到修复的办法了)
    
    mv /usr/bin/python /usr/bin/python2.7.5
    
    ln -fs /usr/local/python/2.7.10/bin/python2.7 /usr/bin/python
    

    5、解决 yum 的问题

    因为yum需要使用Python2.7.5的版本,现在 yum 应该不能干活了,还有设置一下yum相关的文件,这样执行yum相关的命令时才不会出错。vi /usr/bin/yum,修改第一句,替换成保留的2.7.5的版本:
    

    !/usr/bin/python2.7.5

    看了很多人说改完上面的就万事大吉了,我修改了上面的之后,yum还是出问题,然后又根据出问题的部分修改了"/usr/libexec/urlgrabber-ext-down"下的第一句:
    

    !/usr/bin/python2.7.5

    果然熟悉的 yum 界面出来了!
    

    5、安装 setuptools、pip

    老版本的这些,都不能生效了,得重新装过,我在这遇到很多坑,菊花残,满身伤啊!
    
    下载ez_setup.py文件,安装setuptools:
    
     wget [https://bootstrap.pypa.io/ez_setup.py](https://bootstrap.pypa.io/ez_setup.py) 
    
    运行以下命令安装,因为之前没装 zlib-devel 模块,下面的命令执行不成功,没办法,yum install zlib-devel ,然后理新编译 python。
    
    python ez_setup.py 
    
    下载pip源码,进入源码目录进行安装,这一步也因为第一步骤的相关组件没装,坑了半天
    
    wget [https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#md5=3823d2343d9f3aaab21cf9c917710196](https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#md5=3823d2343d9f3aaab21cf9c917710196)
    
    tar zxvf pip-7.1.2.tar.gz
    
    cd pip-7.1.2
    
    python setup.py install  
    
    
    ln -fs /usr/local/python/2.7.10/bin/pip /usr/bin/pip
    
    本以为这样就万事大吉了,结果运行 pip,直接报错,又是因为依赖的组件没装。
    
    最后再说一下,最好把新的 python 的路径加到 PATH 环境变量中,否则还会有其他组件运行不正常。
    

    评论

    发表评论

    validate