2016-08-01 6 views
3

現在、Python 2.7.12をCentOS 5ホスト上のOpenssl 1.0.2hでコンパイルするようになっています。Python 2.7.12をCentOS 5以外のシステムでOpensslをコンパイルする

この理由は、私がこのホスト上で実行するParamiko 2必要があるということですが、それは01 0.9.8e-FIPS-RHEL5でのシステム提供のOpenSSLのバージョンをサポートしていない7月2008

Iましたここでいくつかの大きなヒントやヒントを見つけましたが、うまくいかないようです。私は今、誰かが私が間違っていたもの/見つからないものを発見することを希望してこれを投稿しています。私は次のことをやったの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を実行しました。

その後、私が実行しました:

:私はあなたがここに出力から見ることができるように私は、それは、OpenSSLの新しいバージョンに対してコンパイルされていますがありませんだろうと思ってたときに

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 

です

[[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. 

IヘクタールYumでopenssl-develを削除するまで行っても、それでも1.0.2hを気にする/コンパイルしていないようです。

これは私が少し怒っているので、入力/フィードバック/ヘルプが非常に高く評価されています。

+0

1.xではなく0.98の最新バージョンが必要です。 –

+0

私はあなたにここに従っているかどうかは分かりません。問題は、「非デフォルト」のディレクトリにコンパイルされた「システム標準ではない」OpenSSLビルドを使用してPython 2.7.12をコンパイルする方法でした。あなたは1.xでコンパイルされず、0.98のバージョンでコンパイルされることを意味していますか? Paramiko 2が必要と考えるものについて話していますか? –

+0

CentOS 7で最近構築したとき、私はそれが必要だと確信しています。0.98x –

答えて

4

私はあまりにもかわいい解決策をコピーしてミックスしてマッチさせようとしていたと思います。ちょっと整えて、ちょっと単純化して、最後にはうまくいきました。

これは私が今回やったことです:

ダウンロードとOpenSSL

cd /tmp 
curl http://www.openssl.org/source/openssl-1.0.2h.tar.gz | tar zxvf - 
cd openssl-1.0.2.h 
./config shared --prefix=/usr/local/ 
make && make install 

いくつかの環境変数を設定し

export LDFLAGS="-L/usr/local/lib/" 
export LD_LIBRARY_PATH="/usr/local/lib/" 
export CPPFLAGS="-I/usr/local/include -I/usr/local/include/openssl" 

ダウンロードをインストールし、Python 2.7をインストールします。 12

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 --prefix=/usr/local/ --enable-unicode=ucs4 --enable-shared 
make && make altinstall 

これは期待通りに動作し、新しいOpenSSLバージョンを表示します。

[[email protected] Python-2.7.12]# python2.7 
Python 2.7.12 (default, Aug 1 2016, 14:48:09) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-55)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import ssl 
>>> print ssl.OPENSSL_VERSION 
OpenSSL 1.0.2h 3 May 2016 

ただし、まだ期待どおりに動作しませんでした。私が見つけた解決策を実行することにより、暗号化のこまごまとをアンインストールしてから再インストールすることでした

RuntimeError: You are linking against OpenSSL 0.9.8, which is no longer support by the OpenSSL project. You need to upgrade to a newer version of OpenSSL. 

::(プログラムを実行すると、私はParamikoから、次のエラーを得ました。

pip2.7 uninstall cryptography 
pip2.7 install cryptography 

結局のところ、これが機能します。

+0

__awesome__、魅力的な作品 – luoluo

関連する問題