问题描述:
openeuler-2003-sp1操作系统执行
dnf update --allowerasing --skip-broken --nobest
升级系统到2203-sp4。
升级后dnf/yum损坏无法使用,经我一顿’rpm -ivh xxxx --force’ 和scp拷贝库文件等操作后导致rpm也损坏。
准备重装系统
Qwopus3.6-27B-Coder-MTP-GGUF

现场:

[root@master05 ~]# dnf
Traceback (most recent call last):
  File "/usr/lib64/python3.7/site-packages/libdnf/error.py", line 14, in swig_import_helper
    return importlib.import_module(mname)
  File "/usr/lib64/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 583, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 1043, in create_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: /usr/lib64/libsolvext.so.1: undefined symbol: rpmdbFStat

During handling of the above exception, another exception occurred:

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

rpm损坏后:

 rpm -ivh https://artifactory.xxx.com.cn/thirdpart-rpm-openeuler-remote/openEuler-22.03-LTS-SP4/update/x86_64/Packages/rpm-4.17.0-45.oe2203sp4.x86_64.rpm --force
获取https://artifactory.csc.com.cn/thirdpart-rpm-openeuler-remote/openEuler-22.03-LTS-SP4/update/x86_64/Packages/rpm-4.17.0-45.oe2203sp4.x86_64.rpm
警告:/var/tmp/rpm-tmp.Vnkuor: 头V4 RSA/SHA256 Signature, 密钥 ID b675600b: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:rpm-4.17.0-45.oe2203sp4          ################################# [100%]
PANIC: unprotected error in call to Lua API (version mismatch: app. needs 503.0, Lua core provides 504.0)
[root@master05 ~]# rpm -q rpm
PANIC: unprotected error in call to Lua API (version mismatch: app. needs 503.0, Lua core provides 504.0)
Aborted(核心已转储)
 rpm -q
rpm: symbol lookup error: /usr/lib64/librpm.so.9: undefined symbol: rpmverParse

处理过程:
1、尝试本地模型Qwopus3.6-27B-Coder-MTP-GGUF,进行恢复

AI给的修复过程总结:

步骤操作说明
1从 repo 下载 rpm-4.17.0-38 和 rpm-libs-4.17.0-38使用 curl + Python 解析 RPM v3 xz 压缩格式
2提取 librpm.so.9.2.0、librpmbuild.so.9.2.0、librpmio.so.9.2.0、librpmsign.so.9.2.0新版库包含 rpmdbFStat 符号,依赖 liblua-5.4.so(与 rpm 二进制匹配)
3提取 libsolvext.so.1、libsolv.so.1 (0.7.22-2)与新版 librpm 兼容的 libsolv
4通过 SFTP 上传到服务器 /usr/lib64/—
5更新符号链接 librpm.so.9 → librpm.so.9.2.0 等确保动态加载使用新版库
6替换 libsolvext.so.1、libsolv.so.1解决原始 dnf 故障的根因
7ldconfig + rpm --rebuilddb刷新缓存,修复数据库后端

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

更多推荐