sudo yum install snapd 之后yum命令报错 libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1

报错内容

$ yum --help
Traceback (most recent call last):
  File "/usr/lib64/python3.6/site-packages/libdnf/error.py", line 14, in swig_import_helper
    return importlib.import_module(mname)
  File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 571, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 922, in create_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: /lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/yum", line 57, in <module>
    from dnf.cli import main
  File "/usr/lib/python3.6/site-packages/dnf/__init__.py", line 30, in <module>
    import dnf.base
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 29, in <module>
    import libdnf.transaction
  File "/usr/lib64/python3.6/site-packages/libdnf/__init__.py", line 8, in <module>
    from . import error
  File "/usr/lib64/python3.6/site-packages/libdnf/error.py", line 17, in <module>
    _error = swig_import_helper()
  File "/usr/lib64/python3.6/site-packages/libdnf/error.py", line 16, in swig_import_helper
    return importlib.import_module('_error')
  File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_error'

排查错误

$ ldd /lib64/libk5crypto.so.3
linux-vdso.so.1 (0x00007ffde72b1000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f6176f9a000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f6176d96000)
libcrypto.so.1.1 => /usr/local/openssl111/lib/libcrypto.so.1.1 (0x00007f61768af000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f6176697000)
libc.so.6 => /lib64/libc.so.6 (0x00007f61762d1000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f61760a6000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f6175ea2000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6175c82000)
/lib64/ld-linux-x86-64.so.2 (0x00007f61773c2000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f61759fe000)

ldd 是一个在 Unix 和类 Unix 系统上用来检查可执行文件或共享库所依赖的共享库的实用程序。你提供的输出是 ldd 命令针对 /lib64/libk5crypto.so.3 这个共享库运行的结果。

这个输出显示了 /lib64/libk5crypto.so.3 依赖的其他共享库以及它们的位置。从输出中可以看到,libk5crypto.so.3 依赖于多个共享库,如 libkrb5support.so.0、libkeyutils.so.1、libcrypto.so.1.1 等。

值得注意的是,libcrypto.so.1.1 是从 /usr/local/openssl111/lib/ 路径加载的,这通常意味着系统上可能安装了多个版本的 OpenSSL,并且这个特定版本的 libk5crypto 是配置为使用 /usr/local/openssl111/lib/ 下的 OpenSSL 库。

如果你在使用 sudo 时遇到了与 OpenSSL 相关的错误,这个信息可能是关键所在。特别是如果 /usr/local/openssl111/lib/libcrypto.so.1.1 这个库与系统上其他部分的 OpenSSL 库不兼容,就可能导致你看到的错误。
当 libcrypto.so.1.1 是从 /usr/local/openssl111/lib/ 路径加载时,这意味着系统上的某个进程或库特别指定了这个非标准路径来获取 OpenSSL 库。在 Unix 和 Linux 系统中,/usr/local/ 通常是预留给本地管理员安装软件的目录,这些软件不是通过系统的包管理器安装的。

这与其他从标准系统路径(如 /lib64/ 或 /usr/lib64/)加载的库有所不同

解决报错

$ find / -name 'libcrypto.so.1.1'
/usr/lib64/libcrypto.so.1.1
/usr/local/openssl111/lib/libcrypto.so.1.1

$ mv /usr/local/openssl111/lib/libcrypto.so.1.1 /usr/local/openssl111/lib/libcrypto.so.1.1_001

$ cd /usr/local/openssl111/lib/

$ ls -lha | grep libcrypto.so.1.1
lrwxrwxrwx 1 root root    16 118 15:18 libcrypto.so -> libcrypto.so.1.1
lrwxrwxrwx 1 root root    20 327 16:14 libcrypto.so.1.1 -> libcrypto.so.1.1_001
-rwxr-xr-x 1 root root  3.3M 118 15:18 libcrypto.so.1.1_001

$ rm libcrypto.so.1.1
rm:是否删除符号链接 'libcrypto.so.1.1'?y

$ ls -lha | grep libcrypto.so.1.1
lrwxrwxrwx 1 root root    16 118 15:18 libcrypto.so -> libcrypto.so.1.1
-rwxr-xr-x 1 root root  3.3M 118 15:18 libcrypto.so.1.1_001

$ rm libcrypto.so
rm:是否删除符号链接 'libcrypto.so'?y

$ yum --help
usage: yum [options] COMMAND
主要命令列表:
alias                     列出或创建命令别名
autoremove                删除所有原先因为依赖关系安装的不需要的软件包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值