问题描述:
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 ~]# dnfTraceback(most recent call last): File"/usr/lib64/python3.7/site-packages/libdnf/error.py", line14,inswig_import_helperreturnimportlib.import_module(mname)File"/usr/lib64/python3.7/importlib/__init__.py", line127,inimport_modulereturn_bootstrap._gcd_import(name[level:], package, level)File"<frozen importlib._bootstrap>", line1006,in_gcd_import File"<frozen importlib._bootstrap>", line983,in_find_and_load File"<frozen importlib._bootstrap>", line967,in_find_and_load_unlocked File"<frozen importlib._bootstrap>", line670,in_load_unlocked File"<frozen importlib._bootstrap>", line583,inmodule_from_spec File"<frozen importlib._bootstrap_external>", line1043,increate_module File"<frozen importlib._bootstrap>", line219,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", line57,in<module>from dnf.cliimportmain File"/usr/lib/python3.7/site-packages/dnf/__init__.py", line30,in<module>importdnf.base File"/usr/lib/python3.7/site-packages/dnf/base.py", line29,in<module>importlibdnf.transaction File"/usr/lib64/python3.7/site-packages/libdnf/__init__.py", line8,in<module>from.importerror File"/usr/lib64/python3.7/site-packages/libdnf/error.py", line17,in<module>_error=swig_import_helper()File"/usr/lib64/python3.7/site-packages/libdnf/error.py", line16,inswig_import_helperreturnimportlib.import_module('_error')File"/usr/lib64/python3.7/importlib/__init__.py", line127,inimport_modulereturn_bootstrap._gcd_import(name[level:], package, level)ModuleNotFoundError: No module named'_error'rpm损坏后:
rpm-ivhhttps://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 errorincall to Lua API(version mismatch: app. needs503.0, Lua core provides504.0)[root@master05 ~]# rpm -q rpmPANIC: unprotected errorincall to Lua API(version mismatch: app. needs503.0, Lua core provides504.0)Aborted(核心已转储)rpm-qrpm: 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 故障的根因 |
| 7 | ldconfig + rpm --rebuilddb | 刷新缓存,修复数据库后端 |