signature hdr data: BAD, no. of bytes(13828) out of range报错解决办法

一、情景

在Centos8中使用yum/dnf安装相关包时发生如下类似报错:

error: /var/cache/dnf/base-82351eca59c28538/packages/tar-1.30-9.el8.x86_64.rpm: signature hdr data: BAD, no. of bytes(13828) out of range
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: error reading package header: '/var/cache/dnf/base-82351eca59c28538/packages/tar-1.30-9.el8.x86_64.rpm'

二、踩过的坑

网上的方法试过很多,下面的都不行:

  1. 更新rpm:yum update rpm/dnf update rpm
  2. 修改源CentOS-Base.repo,gpgcheck=0
  3. 在安装命令后增加选项:–nogpgcheck
  4. 清缓存,更新包仓库
    sudo dnf clean packages
    sudo dnf makecache

总结:
出现这个错误提示就是因为rpm包的版本太低导致的,问题是使用yum或者dnf安装的时候是要用到原始的rpm的,所以这里升级rpm自己也是报相同的错误

三、解决方法

不要使用yum/dnf升级rpm,先下载相关包再手动升级

1. 需要下载的包:
rpm-4.14.3-26.el8.x86_64.rpm
rpm-libs-4.14.3-26.el8.x86_64.rpm
rpm-build-libs-4.14.3-26.el8.x86_64.rpm
python3-rpm-4.14.3-26.el8.x86_64.rpm
rpm-plugin-selinux-4.14.3-26.el8.x86_64.rpm
rpm-plugin-systemd-inhibit-4.14.3-26.el8.x86_64.rpm
ima-evm-utils-1.3.2-12.el8.x86_64.rpm
elfutils-libs-0.189-3.el8.x86_64.rpm
elfutils-libelf-0.189-3.el8.x86_64.rpm
elfutils-libelf-devel-0.189-3.el8.x86_64.rpm
tpm2-tss-2.3.2-3.el8.x86_64.rpm

执行命令:

wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/rpm-4.14.3-26.el8.x86_64.rpm
wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/rpm-libs-4.14.3-26.el8.x86_64.rpm
wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/rpm-build-libs-4.14.3-26.el8.x86_64.rpm
wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/python3-rpm-4.14.3-26.el8.x86_64.rpm
wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/rpm-plugin-selinux-4.14.3-26.el8.x86_64.rpm
wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/rpm-plugin-systemd-inhibit-4.14.3-26.el8.x86_64.rpm
wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/ima-evm-utils-1.3.2-12.el8.x86_64.rpm
wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/elfutils-libs-0.189-3.el8.x86_64.rpm
wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/elfutils-libelf-0.189-3.el8.x86_64.rpm
wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/elfutils-libelf-devel-0.189-3.el8.x86_64.rpm
wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/tpm2-tss-2.3.2-3.el8.x86_64.rpm

2. 执行代码升级

rpm -Uvh --noverify --noplugins --nodigest --nosignature rpm-4.14.3-26.el8.x86_64.rpm rpm-libs-4.14.3-26.el8.x86_64.rpm rpm-build-libs-4.14.3-26.el8.x86_64.rpm python3-rpm-4.14.3-26.el8.x86_64.rpm rpm-plugin-selinux-4.14.3-26.el8.x86_64.rpm rpm-plugin-systemd-inhibit-4.14.3-26.el8.x86_64.rpm ima-evm-utils-1.3.2-12.el8.x86_64.rpm elfutils-libs-0.189-3.el8.x86_64.rpm elfutils-libelf-0.189-3.el8.x86_64.rpm elfutils-libelf-devel-0.189-3.el8.x86_64.rpm tpm2-tss-2.3.2-3.el8.x86_64.rpm

3. 相关依赖
在执行步骤2时可能会因为没有相关依赖报错,安装依赖

sudo dnf install libzstd
sudo dnf install pkgconf-pkg-config
sudo dnf install libzstd-devel
sudo dnf install zlib-devel

如果还有缺少其他依赖报错,依次解决即可

4. 其他
确保步骤1中的包全部安装好后,重新执行最开始使用yum/dnf安装相关包,问题解决

感谢:
https://mowblog.com/centos8%E5%8D%87%E7%BA%A7%E8%87%B3centos8-stream/

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值