Centos7.5編譯安裝python3.7後解決SSL不可用問題

最近學習docker,採用了centos7.5系統,遇到了很多坑。其中之一就是在centos7.5系統中以yum安裝Python,其安裝路徑在/usr/lib和/usr/bin下。安裝在這下面有個很大問題就是沒法安裝setuptools和pip,而對於Python而言pip的重要性就如同yum之於centos。因此,這裏採用源碼編譯安裝的方式安裝python3.7。

  1. 安裝前的準備(各種依賴及工具安裝)

    yum -y install gcc make

    yum install libffi-devel

    yum -y install zlib zlib-devel 

    yum -y install bzip2 bzip2-devel 
    yum -y install ncurses ncurses-devel 
    yum -y install readline readline-devel 
    yum -y install openssl openssl-devel 
    yum -y install openssl-static 
    yum -y install xz lzma xz-devel 
    yum -y install sqlite sqlite-devel 
    yum -y install gdbm gdbm-devel 
    yum -y install tk tk-devel

  2. 以libressl代替openssl-devel

    對於 Python3.7系統,openssl版本必須高於1.0.2或者libressl必須高於2.64版本。這裏以libressl代替系統的openssl,libressl獲取地址:https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/  

    這裏以libressl-2.8.0爲例,下載後解壓並進入目錄,然後分別運行以下命令:

    ./config --prefix=/usr/local/ssl

    make & make install

    mv /usr/bin/openssl /usr/bin/openssl.bak 
    mv /usr/include/openssl /usr/include/openssl.bak 
    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl 
    ln -s /usr/local/ssl/include/openssl /usr/include/openssl

  3. 擴展centos默認訪問庫,使可訪問libressl庫文件

    cd /etc/ld.so.conf.d/

    新建文件 
    vim libressl-2.8.0.conf 
    將以下行加入文件,並保存 
    /usr/local/ssl/lib

    運行命令使生效

    ldconfig

  4. 編輯/etc/profile文件,新增如下環境變量

    export LDFLAGS="-L/usr/local/ssl/lib"
    export CPPFLAGS="-I/usr/local/ssl/include"     //引號內第一個字母是大寫i 
    export PKG_CONFIG_PATH="/usr/local/ssl/lib/pkgconfig"

  5. 編譯安裝python3.7

    ./configure --prefix=/usr/local --enable-shared CFLAGS=-fPIC    //配置安裝目錄,使其安裝在/usr/local目錄下,這樣後面才能成功安裝setuptools和pip

    make & make install

    ln -s /usr/local/bin/python3.7 /usr/local/bin/python    //創建快捷方式,是輸入python時默認打開python3.7解釋器,而不是系統默認的版本

  6. 擴展centos默認訪問庫,使可訪問python3.7的庫文件

    cd /etc/ld.so.conf.d/

    新建文件 
    vim python3.conf 
    將以下行加入文件,並保存 
    /usr/local/lib 

    運行命令使生效

    ldconfig


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章