最近公司新弄來一台linux redhat 4.4.7服務器,准備在上面離線安裝python3.7,安裝過程中出現一些問題,特此記錄下來。
首先在python官網上下載了 Python-3.7.3.tgz文件,放在/usr/local/python3.7路徑下,然后解壓到該路徑下
接着進入/usr/local/python3.7/python-3.7.3路徑,執行
./configure --prefix=/usr/local/python3.7
完成之后,接着執行 make && make install 指令進行安裝,結果報如下錯誤 ModuleNotFoundError: No module named '_ctypes'
網上查找一番,原因是安裝pyhton3.7需要一個依賴模塊 libffi-devel,為此在官網上下載了libffi-devel-3.2.1-alt2.x86_64.rpm文件,執行一下命令進行安裝
rpm -ivh libffi-devel-3.2.1-alt2.x86_64.rpm
結果又報出錯誤:缺少依賴模塊libffi6,於是我又在官網上下載 libffi6-3.2.1-alt2.x86_64.rpm文件,執行以下命令安裝
rpm -ivh libffi6-3.2.1-alt2.x86_64.rpm
結果安裝時又報錯,提示:glibc庫版本太低,至少需要glibc-2.14版本,於是我查看了一下系統中glibc庫版本,執行以下命令
strings /lib64/libc.so.6 |grep GLIBC_
發現當前系統glibc庫版本為2.12版本,於是需要對系統glibc庫進行升級,我下載了下面4個文件
glibc-devel-2.17-55.el6.x86_64.rpm
glibc-2.17-55.el6.x86_64.rpm
glibc-common-2.17-55.el6.x86_64.rpm
glibc-headers-2.17-55.el6.x86_64.rpm
這幾個文件間存在依賴關系,所以我就同時安裝了它們,采用了如下指令
rpm -Uvh glibc-devel-2.17-55.el6.x86_64.rpm \
glibc-2.17-55.el6.x86_64.rpm \
glibc-common-2.17-55.el6.x86_64.rpm \
glibc-headers-2.17-55.el6.x86_64.rpm \
--force --nodeps
其中,參數 -Uvh中,
‘U’(update)表示對軟件進行升級
'v'(verbose)指顯示安裝的過程信息
‘h’(hash)指軟件安裝的時候列出哈希標記,即顯示安裝進度
--force 表示強制安裝,即使覆蓋屬於其他包的文件也要安裝
--nodeps表示當要安裝的rpm包依賴其他包時,即使其他包沒有安裝,也要安裝這個包
安裝完成后,查看是否安裝成功,執行以下指令
rpm -qa | grep glibc
可以看到安裝成功,再次查看glibc版本
可以看到,已經將系統glibc版本升級到2.17版本了,最后確認一下安裝。於是重新安裝libffi6、libffi-devel模塊,均成功安裝了,此時可以重新安裝python3.7.3了,一路順暢,安裝成功。
最后,配置一下軟鏈接,這樣不必每次啟動python時都需要進入其安裝路徑下啟動,方便一些,依次執行
完成之后,測試一下
搞定了!