当我使用zypper安装软件包时,我遇到了这样一个问题'未定义的符号:SSL_CTX_set_alpn_protos'。完整的信息如下。
zypper: symbol lookup error: /usr/local/lib/libcurl.so.4: undefined symbol: SSL_CTX_set_alpn_protos
我搜索了互联网并得到了一些提示。 1.我的系统中有两个libcurl,我试图卸载我自己安装的一个。但我遇到了另一个问题,信息如下。
*Error building the cache:
[git|https://github.com/git/git] Valid metadata not found at specified URL
Warning: Disabling repository 'git' because of the above error.
Loading repository data...
Reading installed packages...
'subversion' not found in package names. Trying capabilities.
No provider of 'subversion' found.
Resolving package dependencies...
Nothing to do.*
如果有人可以提供帮助,我很感激,THX!
答案 0 :(得分:2)
您构建并安装在/usr/local/lib/libcurl.so.4
中的libcurl是针对具有SSL_CTX_set_alpn_protos
功能的OpenSSL版本构建的。这意味着OpenSSL 1.0.2或1.1.0。
当您现在链接到该库时,它会在缺少SSL_CTX_set_alpn_protos
函数的运行时找到较旧的OpenSSL(可能是1.0.1或更早版本?)。它无法继续。
您需要确保ld.so将加载较新的OpenSSL。您可以通过执行以下操作之一来解决此问题:
/etc/ld.so.conf
文件以创建其他搜索顺序,或者您可以LD_LIBRARY_PATH
。甚至......