yum update更新错误rpmdb,空间不足
2019-05-21
杂谈
1. Error: rpmdb open failed
登录 Linux 后执行 yum update -y,如果报出 Error: rpmdb open failed,通常说明 RPM 数据库已经损坏,或者数据库文件状态异常。
这个问题的修复思路很简单:先备份并重建 RPM 数据库,再重新清理缓存并执行更新。

错误发生原因是RPM数据库被破坏 这里我们重建数据库后恢复正常 代码如下
cd /var/lib/rpm/
for i in `ls | grep 'db.'`;do mv $i $i.bak;done
rpm --rebuilddb
yum clean all
如果不想一次性移动所有 db.* 文件,也可以先做目录备份后再操作,避免误删历史文件。
修复后先做一次验证
建议先执行:
rpm -qa | head
yum repolist
如果这两步能正常返回,说明 RPM 数据库基本已经恢复,再继续执行 yum update 更稳妥。
2. 重建后发现空间不足错误
这里需要通过删除过去老的内核来空出空间,然后再来更新,代码
yum list kernel #查看内核
package-cleanup --oldkernels --count=2#只保留2个

把配置写入配置文件防止再次出现此类错误 打开/etc/yum.conf设置 installonly_limit=2
额外检查
如果空间仍然不够,可以继续检查:
df -h
du -sh /var/cache/yum
du -sh /boot
很多时候真正占满空间的是 /boot 旧内核,或者缓存目录没有及时清理。
常见问题
1. package-cleanup 命令不存在
某些系统需要先安装 yum-utils:
yum install -y yum-utils
2. 重建 rpmdb 后还是报错
这通常说明问题不只是数据库文件损坏,也可能是文件系统异常或者磁盘已经写满。先检查 df -h 和系统日志,再继续处理。
3. 删除旧内核后仍然空间不足
除了 /boot,还要检查日志、缓存和临时目录,尤其是长期运行的服务器。
延伸阅读
- 原文作者:春江暮客
- 原文链接:https://www.bobobk.com/305.html
- 版权声明:本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。