RHEL 8.9系统安装RPM包报错tag[42]: BAD, tag 1096 type 5 offset 2232 count 16 len 64的含义及解决方法
RHEL 8.9系统安装RPM包报错tag[42]: BAD, tag 1096 type 5 offset 2232 count 16 len 64的含义及解决方法
错误含义
遇到这个报错别慌,先搞懂它在说啥:这个错误本质是你要安装的RPM包内部的元数据(就是用来记录包版本、依赖、发布信息这些关键描述的标签数据)损坏了。
里面的参数是具体的损坏细节:
tag 1096是RPM包规范里定义的某个特定元数据标签;type 5说明这个标签原本应该是字符串类型;- 后面的
offset 2232、count 16、len 64是用来标记元数据里出错的具体位置、条目数和长度的参数,对我们普通用户来说不用太纠结这些数字,核心就是包的元数据坏了,rpm工具读不懂它了。
解决方法
我给你整理了几个按优先级尝试的解决步骤,你一个个来试:
- 重新下载并校验RPM包
这是最常见的解决办法。先把本地的损坏包删掉,然后从官方源或者可信的下载渠道重新下载。下载完成后,最好对比一下官方提供的哈希值(比如SHA256),确保文件完整:
执行命令:
把输出的哈希值和官方发布的对比,如果不一致,说明下载的包确实有问题,重新下载直到一致为止。sha256sum /filePath - 检查存储介质的完整性
如果这个RPM包是从本地磁盘、U盘等存储设备读取的,可能是存储介质有坏块导致文件损坏。可以先卸载对应的存储分区,然后用fsck工具检查(比如fsck /dev/sdb1,注意替换成你的实际分区路径),修复坏块后再重新读取包文件。 - 清理RPM本地缓存
有时候本地RPM缓存里的旧数据会干扰新包的安装,执行以下命令清理缓存:
清理完成后再重新执行你的安装命令:rm -rf /var/cache/rpm/*rpm -iv --prefix /dir /filePath - 尝试跳过部分校验(谨慎使用)
如果确认包本身没问题,只是元数据标签有小瑕疵,可以尝试用rpm的参数跳过部分校验(不过这个方案不推荐作为首选,因为可能隐藏真正的问题):rpm -iv --prefix /dir --nodigest --nosignature /filePath
备注:内容来源于stack exchange,提问作者Zen
相关产品推荐
相关产品推荐

