[英]Unable to compile Python on CentOS 6.10 (OpenSSL errors)
I'm trying to compile Python 3.7.2 on CentOS 6.10, but I'm running into some errors when compiling.我正在尝试在 CentOS 6.10 上编译 Python 3.7.2,但是在编译时遇到了一些错误。
I followed these instructions to install openssl:我按照这些说明安装 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
the openssl was installed at /usr/local/ssl
. openssl 安装在
/usr/local/ssl
。 then I followed these instructions to install python3.7.2:然后我按照这些说明安装 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
then I went to ./Python-3.7.2/Modules/
to modify the Setup.dist
file by uncommenting some code:然后我去
./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
and then I went back to Python-3.7.2
file and typed the installation instructions:然后我回到
Python-3.7.2
文件并输入安装说明:
./configure
make
make altinstall
However, when I executed the make
command above, the system showed the message like this:但是,当我执行上面的
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
It seemed that python3.7.2 had an issue with openssl.似乎 python3.7.2 与 openssl 存在问题。 How should I solve this problem?
我应该如何解决这个问题?
This is likely an issue with an outdated version of the OpenSSL library, which need to be 1.0.2 or 1.1.这可能是 OpenSSL 库的过时版本的问题,它需要是 1.0.2 或 1.1。 I think CentOS 6 provides 1.0.1e.
我认为 CentOS 6 提供 1.0.1e。
Try to follow these instructions to install OpenSSL under your username, then run the configure script with these arguments:尝试按照这些说明在您的用户名下安装 OpenSSL,然后使用这些 arguments 运行配置脚本:
./configure --with-ensurepip=yes CFLAGS="-I$HOME/openssl/include" LDFLAGS="-L$HOME/openssl/lib"
For more details on this issue, see the Python bug tracker: https://bugs.python.org/issue34028 .有关此问题的更多详细信息,请参阅 Python 错误跟踪器: https://bugs.python.org/issue34028 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.