执行 dnf clean all 呢,这时候应该使用的是工具构建的 dnf 命令
我的系统是redhat7.9,这个版本没有dnf命令的
工具会构建一个啊,日志中不是说了“construct dnf in your system sucess,your system will use dnf to upgrade”,升级过程必须要使用 dnf 的,这是工具的特性
您的意思我在升级过程中在待升级机器执行一下这个看看是否有报错吗
嗯对,有报错确实,[root@NFV-R-ZJHZ-02B-HW-01-VM-HMZH-DX-CSMS-VM7 boco4a]# dnf clean all
Traceback (most recent call last):
File “/bin/dnf”, line 57, in
from dnf.cli import main
File “/usr/lib/python3.9/site-packages/dnf/init.py”, line 30, in
import dnf.base
File “/usr/lib/python3.9/site-packages/dnf/base.py”, line 29, in
import libdnf.transaction
File “/usr/lib64/python3.9/site-packages/libdnf/init.py”, line 8, in
from . import error
File “/usr/lib64/python3.9/site-packages/libdnf/error.py”, line 13, in
from . import _error
ImportError: /lib64/libldap.so.2: undefined symbol: EVP_md2, version OPENSSL_1_1_0
这个报错,大概率是自己定义了共享库的位置
① 看看 /etc/ld.so.conf 文件或 /etc/ld.so.conf.d/ 目录是不是有指定自定义库
② 若有,则注释后使用 ldconfig -v 命令刷新一下
③ 查看 dnf 命令是否正常
④ 若 dnf 正常,则到前端界面点击重试
没有找到真正的自定义库的位置,这个可以在多个地方定义:
先执行 openssl version -a 看看库的路径是什么,再去针对性注释,不是随便注释的,一般这个路径应该是 /usr/local/openssl/lib,具体要看编译的时候指定的位置
① echo $LD_LIBRARY_PATH 看看有没有
② /etc/ld.so.conf 文件有没有
③ /etc/ld.so.conf.d/ 目录下面有没有
谢谢,我解决了,应该是因为openssl升级过版本不对的问题,做了如下操作正常了。
mv /usr/local/bin/openssl /usr/local/openssl-1.1.1s/
rm -rf /lib/libssl.so.1.1
rm -rf /lib/libcrypto.so.1.1
mv /usr/bin/openssl_bak20221108 /usr/bin/openssl
cd /usr/lib64/
rm libcrypto.so.1.1
ll | grep libcrypto.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 libcrypto.so.1.1