春江暮客

春江暮客的个人学习分享网站

yum update更新错误rpmdb,空间不足

2019-05-21 杂谈

1. Error: rpmdb open failed

登录 Linux 后执行 yum update -y,如果报出 Error: rpmdb open failed,通常说明 RPM 数据库已经损坏,或者数据库文件状态异常。

这个问题的修复思路很简单:先备份并重建 RPM 数据库,再重新清理缓存并执行更新。

yum_error

错误发生原因是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. 重建后发现空间不足错误

space_error 这里需要通过删除过去老的内核来空出空间,然后再来更新,代码

yum list kernel #查看内核
package-cleanup --oldkernels --count=2#只保留2个

yum_success

把配置写入配置文件防止再次出现此类错误 打开/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,还要检查日志、缓存和临时目录,尤其是长期运行的服务器。

延伸阅读

友情链接

其它