Wie man Python mit dem manuell kompilierten OpenSSL verknüpft, anstatt mit dem System

385
user9371654

Ich muss OpenSSL manuell aus dem Quellcode kompilieren. Ich verwende Ubuntu 18. Das mit Ubuntu 18 gelieferte OpenSSL unterstützt keine bestimmte Verschlüsselung, die ich benötige. Es kann jedoch aktiviert werden, wenn ich OpenSSL manuell kompiliere. Ich habe dieses Handbuch gefunden . Wie kann ich jedoch Python ssl verknüpfen, um das manuell installierte OpenSSL und nicht das Betriebssystem eins zu nehmen?

2

1 Antwort auf die Frage

1
hoefling

Sie können die bestehende Python-Installation nicht erneut verknüpfen und müssen eine andere Python-Distribution aus dem Quellcode erstellen. Wenn Python bauen, müssen Sie anpassen CPPFLAGS, LDFLAGSund LD_LIBRARY_PATHenv Variablen. Angenommen, Sie haben die benutzerdefinierte OpenSSL in installiert /path/to/openssl:

$ cd /path/with/Python/sources/unpacked/ $ export LDFLAGS="-L/path/to/openssl/lib/ -L/path/to/openssl/lib64/" $ export LD_LIBRARY_PATH="/path/to/openssl/lib/:/path/to/openssl/lib64/" $ export CPPFLAGS="-I/path/to/openssl/include -I/path/to/openssl/include/openssl" $ ./configure --prefix=/path/to/custom/python/ $ make $ make install 

Jetzt verwendet Python in /path/to/custom/python/die benutzerdefinierte OpenSSL:

$ /path/to/custom/python/bin/python -c "import ssl; print(ssl.OPENSSL_VERSION)" OpenSSL 1.1.0h 27 Mar 2018