如何將 python 連結到手動編譯的 OpenSSL 而不是系統的 OpenSSL

如何將 python 連結到手動編譯的 OpenSSL 而不是系統的 OpenSSL

我需要從原始碼手動編譯 OpenSSL。我使用 Ubuntu 18。但是如果我手動編譯OpenSSL就可以啟用它。我找到了這個手動的。但是,如何連結 python ssl 來取得手動安裝的 OpenSSL 而不是作業系統呢?

答案1

您無法重新連結現有的 Python 安裝,並且需要從原始碼建立另一個 Python 發行版。建立 Python 時,您需要調整CPPFLAGS,LDFLAGSLD_LIBRARY_PATHenv 變數。假設您將自訂 OpenSSL 安裝在/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

現在Python/path/to/custom/python/將使用自訂的OpenSSL:

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

相關內容