web-dev-qa-db-ja.com

sslを使用してソースからPython 3.7.3をインストールできませんでした

Python 3.7.3 with sslのインストールに問題があります。すべてのコンパイルは成功しましたが、モジュール_sslの最後のインストールは失敗しました。

ステップ1:opensslをインストールする

git clone https://github.com/openssl/openssl.git
cd openssl
git checkout tags/OpenSSL_1_0_2r
./Config
make
Sudo make install

Opensslは/usr/local/sslにインストールされています

ステップ2:Python3.7.3を構成する

wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
tar xzvf Python-3.7.3.tgz
cd Python-3.7.3
./configure --with-openssl=/usr/local/ssl

設定は正しいです:

/ usr/local/sslのopenssl/ssl.hをチェックしています...はい

openSSLに対してコンパイルおよびリンクが機能するかどうかの確認...はい

libsslでX509_VERIFY_PARAM_set1_Hostをチェックしています...はい

ステップ3:Pythonをコンパイルする

make

ステップ4a:Pythonをインストールする

Sudo make install

このステップは失敗しました:

***警告:「_ssl」のインポートに失敗したため、名前を変更しています:build/lib.linux-x86_64-3.7/_ssl.cpython-37m-x86_64-linux-gnu.so:undefined symbol:X509_VERIFY_PARAM_set_hostflags

...

次のモジュールは正常にビルドされましたが、インポートできなかったため削除されました:

_ssl

ステップ4b:pythonをローカルフォルダにインストールします

make install prefix="~/Downloads/install"

この場合、インストールは成功しています。

ステップ4aの後、python3 -c "import ssl"は失敗しました。しかし、ステップ4bでコンパイルした_sslモジュールを置き換えると、上記のコマンドは機能します。

Sudo rm /usr/local/lib/python3.7/lib-dynload/_ssl.cpython-37m-x86_64-linux-gnu_failed.so
Sudo cp ~/Downloads/install/lib/python3.7/lib-dynload/_ssl.cpython-37m-x86_64-linux-gnu.so /usr/local/lib/python3.7/lib-dynload/

なぜこれが起こるのか誰か説明できますか?

3
Tan Dat
  1. opensslをコンパイルしてインストールします(デフォルトで「/ usr/local/ssl」の下にインストールされます)。必ず共有オプションでコンパイルしてください

  2. リンカー検索設定ファイルへのフルパスを追加します:/etc/ld.so.conf

  3. rootとして入力:ldconfig

再コンパイル

1
Shamir Udi