我目前正試圖在Centos 5主機上使用Openssl 1.0.2h編譯Python 2.7.12。在Centos 5上編譯Python 2.7.12與非系統Openssl
這樣做的原因是,我需要的paramiko 2到該主機上運行,但不支持提供的OpenSSL版本的系統,這是0.9.8e - FIPS的RHEL5 7月01日2008年
我已經在這裏發現了一些很棒的提示和技巧,但它似乎並不奏效。我現在發佈這個,希望有人會發現我做錯了/失蹤。
對於OpenSSL的設置我已經做了以下內容:
OPENSSL_ROOT="$HOME/.build/openssl-1.0.1e"
cd /tmp
curl http://www.openssl.org/source/openssl-1.0.2h.tar.gz | tar zxvf -
cd openssl-1.0.2.h
mkdir -p "$OPENSSL_ROOT"
./config no-hw --prefix="$OPENSSL_ROOT" --openssldir=...
make install
然後,因爲我不想和2.7.12我做了更換安裝Python的系統如下:
首先,我將/ usr/local/lib添加到/etc/ld.so.conf並運行ldconfig。
之後,我已經運行:
cd /tmp
wget http://python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
tar xf Python-2.7.12.tar.xz
cd Python-2.7.12
./configure CPPFLAGS="-I$OPENSSL_ROOT/include" LDFLAGS="-L$OPENSSL_ROOT/lib" --prefix=/usr/local --enable-unicode=ucs4 --enable-shared
make && make altinstall
這是當我以爲我會靠在OpenSSL的新版本編譯的,但沒有,你可以從輸出在這裏看到:
[[email protected] openssl-1.0.2h]# python2.7 -c "import ssl; print ssl.OPENSSL_VERSION"
OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
而且我敢肯定,我運行新編譯版本,因爲這是在這裏迴盪:
[[email protected] openssl-1.0.2h]# python2.7
Python 2.7.12 (default, Aug 1 2016, 11:46:42)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-55)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
我公頃甚至去除了Yum的openssl-devel,但它似乎仍然不關心/編譯1.0.2h。
這讓我有點生氣,所以任何輸入/反饋/幫助非常感謝。
我覺得你需要最新版本的0.98而不是1.x. –
我不確定我在這裏關注你。現在的問題是如何編譯Python 2.7.12與'非系統標準'的OpenSSL構建,編譯爲'非默認'目錄。你是否暗示它不會用1.x編譯,而是用0.98版本編譯?或者你在談論你認爲Paramiko 2需要什麼? –
當我最近在Centos 7上構建它時,我確信它需要0.98x –