gpt4 book ai didi

python - 无法在 CentOS 6.10 上编译 Python(OpenSSL 错误)

转载 作者:行者123 更新时间:2023-12-04 19:36:12 24 4
gpt4 key购买 nike

我正在尝试在 CentOS 6.10 上编译 Python 3.7.2,但在编译时遇到了一些错误。

我按照以下说明安装 openssl:

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
tar -xf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
./config && make && make install

openssl 安装在 /usr/local/ssl .
然后我按照这些说明安装 python3.7.2:
wget http://python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
tar -xf Python-3.7.2.tar.xz

然后我去了 ./Python-3.7.2/Modules/修改 Setup.dist通过取消注释一些代码来文件:
# Socket module helper for socket(2)
_socket socketmodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto

然后我回到 Python-3.7.2文件并输入安装说明:
./configure
make
make altinstall

但是,当我执行 make上面的命令,系统显示如下消息:
gcc -pthread     -Xlinker -export-dynamic -o python Programs/python.o libpython3.7m.a -lpthread -ldl  -lutil -lrt -L/usr/local/ssl/lib -lssl -lcrypto   -lm
libpython3.7m.a(_ssl.o): In function `PyInit(short, short, long)':
/root/Python-3.7.2/./Modules/_ssl.c:6114: undefined reference to `OpenSSL_version_num'
/root/Python-3.7.2/./Modules/_ssl.c:6124: undefined reference to `OpenSSL_version'
libpython3.7m.a(_ssl.o): In function `sk_ACCESS_DESCRIPTION_num':
/usr/local/include/openssl/x509v3.h:170: undefined reference to `OPENSSL_sk_num'
/usr/local/include/openssl/x509v3.h:170: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_ACCESS_DESCRIPTION_value':
/usr/local/include/openssl/x509v3.h:170: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `PySSLSession_get_ticket_lifetime_hint':
/root/Python-3.7.2/./Modules/_ssl.c:4964: undefined reference to `SSL_SESSION_get_ticket_lifetime_hint'
libpython3.7m.a(_ssl.o): In function `PySSLSession_get_has_ticket':
/root/Python-3.7.2/./Modules/_ssl.c:4986: undefined reference to `SSL_SESSION_has_ticket'
libpython3.7m.a(_ssl.o): In function `PySSL_get_session_reused':
/root/Python-3.7.2/./Modules/_ssl.c:2823: undefined reference to `SSL_session_reused'
libpython3.7m.a(_ssl.o): In function `PySSL_set_session':
/root/Python-3.7.2/./Modules/_ssl.c:2793: undefined reference to `SSL_is_init_finished'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_compression_impl':
/root/Python-3.7.2/./Modules/_ssl.c:2061: undefined reference to `COMP_get_type'
/root/Python-3.7.2/./Modules/_ssl.c:2063: undefined reference to `COMP_get_type'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_selected_alpn_protocol_impl':
/root/Python-3.7.2/./Modules/_ssl.c:2036: undefined reference to `SSL_get0_alpn_selected'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_version_impl':
/root/Python-3.7.2/./Modules/_ssl.c:1993: undefined reference to `SSL_is_init_finished'
libpython3.7m.a(_ssl.o): In function `sk_SSL_CIPHER_num':
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_num'
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_SSL_CIPHER_value':
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_get_channel_binding_impl':
/root/Python-3.7.2/./Modules/_ssl.c:2638: undefined reference to `SSL_session_reused'
libpython3.7m.a(_ssl.o): In function `get_verify_flags':
/root/Python-3.7.2/./Modules/_ssl.c:3410: undefined reference to `SSL_CTX_get0_param'
libpython3.7m.a(_ssl.o): In function `set_verify_flags':
/root/Python-3.7.2/./Modules/_ssl.c:3423: undefined reference to `SSL_CTX_get0_param'
libpython3.7m.a(_ssl.o): In function `set_post_handshake_auth':
/root/Python-3.7.2/./Modules/_ssl.c:3637: undefined reference to `SSL_CTX_set_post_handshake_auth'
libpython3.7m.a(_ssl.o): In function `get_options':
/root/Python-3.7.2/./Modules/_ssl.c:3545: undefined reference to `SSL_CTX_get_options'
libpython3.7m.a(_ssl.o): In function `set_options':
/root/Python-3.7.2/./Modules/_ssl.c:3554: undefined reference to `SSL_CTX_get_options'
/root/Python-3.7.2/./Modules/_ssl.c:3567: undefined reference to `SSL_CTX_set_options'
/root/Python-3.7.2/./Modules/_ssl.c:3559: undefined reference to `SSL_CTX_clear_options'
libpython3.7m.a(_ssl.o): In function `set_host_flags':
/root/Python-3.7.2/./Modules/_ssl.c:3586: undefined reference to `SSL_CTX_get0_param'
/root/Python-3.7.2/./Modules/_ssl.c:3588: undefined reference to `X509_VERIFY_PARAM_set_hostflags'
libpython3.7m.a(_ssl.o): In function `cipher_to_dict':
/root/Python-3.7.2/./Modules/_ssl.c:1900: undefined reference to `SSL_CIPHER_is_aead'
/root/Python-3.7.2/./Modules/_ssl.c:1901: undefined reference to `SSL_CIPHER_get_cipher_nid'
/root/Python-3.7.2/./Modules/_ssl.c:1903: undefined reference to `SSL_CIPHER_get_digest_nid'
/root/Python-3.7.2/./Modules/_ssl.c:1905: undefined reference to `SSL_CIPHER_get_kx_nid'
/root/Python-3.7.2/./Modules/_ssl.c:1907: undefined reference to `SSL_CIPHER_get_auth_nid'
libpython3.7m.a(_ssl.o): In function `sk_SSL_CIPHER_num':
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_SSL_CIPHER_value':
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `sk_SSL_CIPHER_num':
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_cert_store_stats_impl':
/root/Python-3.7.2/./Modules/_ssl.c:4452: undefined reference to `X509_STORE_get0_objects'
libpython3.7m.a(_ssl.o): In function `sk_X509_OBJECT_num':
/usr/local/include/openssl/x509_vfy.h:58: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_X509_OBJECT_value':
/usr/local/include/openssl/x509_vfy.h:58: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_cert_store_stats_impl':
/root/Python-3.7.2/./Modules/_ssl.c:4455: undefined reference to `X509_OBJECT_get_type'
/root/Python-3.7.2/./Modules/_ssl.c:4458: undefined reference to `X509_OBJECT_get0_X509'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext__set_alpn_protocols_impl':
/root/Python-3.7.2/./Modules/_ssl.c:3358: undefined reference to `SSL_CTX_set_alpn_protos'
/root/Python-3.7.2/./Modules/_ssl.c:3360: undefined reference to `SSL_CTX_set_alpn_select_cb'
libpython3.7m.a(_ssl.o): In function `_ssl_configure_hostname':
/root/Python-3.7.2/./Modules/_ssl.c:863: undefined reference to `X509_VERIFY_PARAM_set1_host'
/root/Python-3.7.2/./Modules/_ssl.c:861: undefined reference to `SSL_get0_param'
/root/Python-3.7.2/./Modules/_ssl.c:869: undefined reference to `X509_VERIFY_PARAM_set1_ip'
libpython3.7m.a(_ssl.o): In function `newPySSLSocket':
/root/Python-3.7.2/./Modules/_ssl.c:927: undefined reference to `BIO_up_ref'
/root/Python-3.7.2/./Modules/_ssl.c:928: undefined reference to `BIO_up_ref'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_impl':
/root/Python-3.7.2/./Modules/_ssl.c:3046: undefined reference to `SSL_CTX_set_options'
/root/Python-3.7.2/./Modules/_ssl.c:3077: undefined reference to `OpenSSL_version_num'
/root/Python-3.7.2/./Modules/_ssl.c:3106: undefined reference to `SSL_CTX_get0_param'
/root/Python-3.7.2/./Modules/_ssl.c:3112: undefined reference to `X509_VERIFY_PARAM_set_hostflags'
/root/Python-3.7.2/./Modules/_ssl.c:3116: undefined reference to `SSL_CTX_set_post_handshake_auth'
/root/Python-3.7.2/./Modules/_ssl.c:3046: undefined reference to `SSL_CTX_set_options'
/root/Python-3.7.2/./Modules/_ssl.c:3046: undefined reference to `SSL_CTX_set_options'
/root/Python-3.7.2/./Modules/_ssl.c:2975: undefined reference to `TLS_method'
/root/Python-3.7.2/./Modules/_ssl.c:2977: undefined reference to `TLS_client_method'
/root/Python-3.7.2/./Modules/_ssl.c:2979: undefined reference to `TLS_server_method'
libpython3.7m.a(_ssl.o): In function `_create_tuple_for_X509_NAME':
/root/Python-3.7.2/./Modules/_ssl.c:1174: undefined reference to `X509_NAME_ENTRY_set'
/root/Python-3.7.2/./Modules/_ssl.c:1157: undefined reference to `X509_NAME_ENTRY_set'
libpython3.7m.a(_ssl.o): In function `_decode_certificate':
/root/Python-3.7.2/./Modules/_ssl.c:1594: undefined reference to `X509_get_version'
/root/Python-3.7.2/./Modules/_ssl.c:1629: undefined reference to `X509_getm_notBefore'
/root/Python-3.7.2/./Modules/_ssl.c:1646: undefined reference to `X509_getm_notAfter'
libpython3.7m.a(_ssl.o): In function `sk_GENERAL_NAME_num':
/usr/local/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_GENERAL_NAME_value':
/usr/local/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `sk_GENERAL_NAME_pop_free':
/usr/local/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_pop_free'
libpython3.7m.a(_ssl.o): In function `sk_DIST_POINT_num':
/usr/local/include/openssl/x509v3.h:205: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_DIST_POINT_value':
/usr/local/include/openssl/x509v3.h:205: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `sk_GENERAL_NAME_num':
/usr/local/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_GENERAL_NAME_value':
/usr/local/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_getpeercert_impl':
/root/Python-3.7.2/./Modules/_ssl.c:1809: undefined reference to `SSL_is_init_finished'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_get_ca_certs_impl':
/root/Python-3.7.2/./Modules/_ssl.c:4503: undefined reference to `X509_STORE_get0_objects'
libpython3.7m.a(_ssl.o): In function `sk_X509_OBJECT_num':
/usr/local/include/openssl/x509_vfy.h:58: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_X509_OBJECT_value':
/usr/local/include/openssl/x509_vfy.h:58: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_get_ca_certs_impl':
/root/Python-3.7.2/./Modules/_ssl.c:4509: undefined reference to `X509_OBJECT_get_type'
/root/Python-3.7.2/./Modules/_ssl.c:4514: undefined reference to `X509_OBJECT_get0_X509'
libpython3.7m.a(_ssl.o): In function `_add_ca_certs':
/root/Python-3.7.2/./Modules/_ssl.c:3900: undefined reference to `SSL_CTX_get_default_passwd_cb_userdata'
/root/Python-3.7.2/./Modules/_ssl.c:3900: undefined reference to `SSL_CTX_get_default_passwd_cb'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_verify_client_post_handshake_impl':
/root/Python-3.7.2/./Modules/_ssl.c:2674: undefined reference to `SSL_verify_client_post_handshake'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_load_cert_chain_impl':
/root/Python-3.7.2/./Modules/_ssl.c:3773: undefined reference to `SSL_CTX_get_default_passwd_cb'
/root/Python-3.7.2/./Modules/_ssl.c:3774: undefined reference to `SSL_CTX_get_default_passwd_cb_userdata'
collect2: ld returned 1 exit status
make: *** [python] Error 1

似乎 python3.7.2 与 openssl 有问题。我应该如何解决这个问题?

最佳答案

这可能是 OpenSSL 库版本过时的问题,需要 1.0.2 或 1.1。我认为 CentOS 6 提供了 1.0.1e。

尝试关注 these instructions在您的用户名下安装 OpenSSL,然后使用以下参数运行配置脚本:

./configure --with-ensurepip=yes CFLAGS="-I$HOME/openssl/include" LDFLAGS="-L$HOME/openssl/lib"

有关此问题的更多详细信息,请参阅 Python 错误跟踪器: https://bugs.python.org/issue34028 .

关于python - 无法在 CentOS 6.10 上编译 Python(OpenSSL 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61698493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com