CentOS Stream 9运行yum报错:未定义符号SSL_CTX_set_srp_password
解决CentOS Stream 9中yum命令的ImportError问题
问题现象
执行yum命令时触发以下错误:
Traceback (most recent call last): File "/usr/bin/yum", line 61, in <module> from dnf.cli import main File "/usr/lib/python3.9/site-packages/dnf/__init__.py", line 30, in <module> import dnf.base File "/usr/lib/python3.9/site-packages/dnf/base.py", line 29, in <module> import libdnf.transaction File "/usr/lib64/python3.9/site-packages/libdnf/__init__.py", line 12, in <module> from . import conf File "/usr/lib64/python3.9/site-packages/libdnf/conf.py", line 13, in <module> from . import _conf ImportError: /lib/libcurl.so.4: undefined symbol: SSL_CTX_set_srp_password, version OPENSSL_1.0.1
问题原因
libcurl库尝试调用OpenSSL 1.0.1版本的特定符号,但CentOS Stream 9默认使用OpenSSL 3.x版本,存在库版本不兼容或libcurl错误链接到非系统默认OpenSSL库的情况。
解决步骤
检查当前OpenSSL版本及libcurl关联的库:
openssl version ldd /usr/bin/curl | grep libssl确认输出中是否存在非系统默认的OpenSSL库路径。
强制重新安装相关包(yum不可用时用rpm命令):
从CentOS Stream 9官方镜像源下载对应架构的openssl、curl、libcurlRPM包,执行以下命令强制覆盖安装:rpm -ivh --force openssl-*.rpm curl-*.rpm libcurl-*.rpm若系统挂载了安装介质或有本地镜像源,可直接从对应路径获取RPM包。
验证修复结果:
执行命令确认yum功能恢复:yum --version再次检查libcurl的库链接是否正常:
ldd /usr/bin/curl | grep libssl
内容的提问来源于stack exchange,提问作者Tieu Tuong Phong
相关产品推荐
相关产品推荐

