Centos之yum命令报错 Error rpmdb open failed

报错现象

用yum安装软件时,报错如下:

Failed to set locale, defaulting to C
error: rpmdb: BDB0113 Thread/process 20004/139845915264256 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

报错含义为:rpmdb开启失败,运行rpm -qa,也报错,同样的问题,rpmdb的问题

解决方法

  • 进到rpm目录
cd /var/lib/rpm
  • 可以看到几个_db开头的几个文件
__db.001  __db.002  __db.003 Basenames  Conflictname  Dirnames  Group  Installtid  Name  Obsoletename  Packages  Providename  Requirename  Sha1header  Sigmd5  Triggername  
  • 删除_db开头的文件
rm -rf _db*
  • 重新构建
rpm --rebuilddb

OK,执行yum和rpm命令可以了!

### 解决 CentOS 中 `yum` 命令报错的方法 对于 CentOS 8 和 CentOS 7 用户,在执行 `yum` 命令时可能会遇到不同的错误消息。以下是针对这些错误的具体解决方案。 #### 错误一:Failed to set locale 和 Failed to download metadata for repo 'appstream' 当运行 `yum` 命令报错Failed to set locale” 或者 “Failed to download metadata for repo ‘appstream’”,这通常发生在 CentOS 8 上。这类问题可以通过更新系统的区域设置或者更换镜像源来解决[^1]。 为了更改镜像源,可以按照如下操作: ```bash sudo mv /etc/yum.repos.d/CentOS-Linux-AppStream.repo /etc/yum.repos.d/CentOS-Linux-AppStream.repo.bak sudo curl -o /etc/yum.repos.d/CentOS-Linux-AppStream.repo http://mirror.centos.org/centos/$releasever/AppStream/x86_64/os/ ``` #### 错误二:Another app is currently holding the yum lock; waiting for it to exit 如果收到此提示,则意味着有另一个进程正在占用 YUM 数据库锁文件 `/var/run/yum.pid` 或者 `/var/lib/rpm/__db.*` 文件被锁定。此时应该等待其他程序完成其任务后再尝试,也可以手动删除上述提到的 PID 文件或 RPM 数据库中的临时文件以解锁[^2]。 #### 错误三:Could not resolve host: mirrorlist.centos.org;Name or service not known 该问题是由于 CentOS 7 的官方支持已终止,并且默认仓库已被迁移至归档位置所致。这意味着即使使用最新版的 CentOS 7,默认情况下也无法正常访问官方提供的软件包资源。建议采取以下措施之一来修复这个问题[^3]: - 更改本地主机上的 DNS 设置; - 使用第三方提供的活跃镜像站点作为新的下载源; - 将现有的基础配置替换为来自阿里云或其他可靠提供商的新版本。 具体做法是在终端里输入下面几条指令来进行修改: ```bash cd /etc/yum.repos.d/ sudo cp CentOS-Base.repo CentOS-Base.repo.backup sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo ``` 通过以上步骤能够有效地解决问题并恢复正常的包管理功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰哥的技术杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值