如何修复 Yum 错误:数据库磁盘映像格式错误
在本文中,我们将简要介绍 YUM、YumDB,然后介绍 Yum 错误:数据库磁盘映像格式错误的原因以及如何修复此问题错误。
YUM(Yellowdog Updater,修改版)是基于 RPM(RedHat 包管理器)的 Linux 发行版(例如 Red Hat Enterprise Linux (RHEL)、CentOS 以及旧版本的 Fedora Linux)上用于 Linux 包管理的默认高级工具。仅举几例。
它的工作方式就像 apt-get 命令或相对较新的 apt 命令;它可用于安装新软件包、删除旧软件包以及查询已安装和/或可用的软件包。它还可用于更新系统(以及依赖项解析和过时处理,具体取决于存储的存储库元数据)。
注意:本指南假设您以 root 身份控制系统,否则使用 sudo 命令运行下面的所有命令。有趣的是,您还可以在不输入密码的情况下运行 sudo 命令;你知道吗,好吧,让我们继续。
YumDB的简单认识
从3.2.26版本开始,yum 将有关已安装软件包的补充信息存储在通用 rpm 数据库之外的位置;在一个名为 yumdb (/var/lib/yum/yumdb/) 的简单平面文件数据库中 – 不是真正的数据库。
cd /var/lib/yum/yumdb
ls
您可以查看子目录之一以了解有关 yumdb 的更多信息,如下所示。
cd b
ls
虽然这些信息对于 yum 进程来说意义不大,但对于系统管理员来说非常有用:它清楚地描述了系统上安装软件包的上下文。
如果您尝试查看上面屏幕截图中显示的文件(from_repo、installed_by、releasever 等..),您可能什么也看不到对他们来说很重要。
要访问其中的信息,您必须安装 yum-utils,它提供了一个名为 yumdb 的脚本 - 然后按如下所述使用该脚本。
yum install yum-utils
以下命令将获取安装了 httpd 的repo。
yumdb get from_repo httpd
要定义关于包 httpd 和 mariadb 的注释,请键入。
yumdb set note "installed by aaronkilik to setup LAMP" httpd mariadb
要查看有关 httpd 和 mariadb 的所有 yumdb 值,请键入。
yumdb info httpd mariadb
修复 Yum 错误:数据库磁盘映像格式错误
有时,在使用YUM安装软件包或更新系统时,您可能会遇到错误:“数据库磁盘映像格式错误”。它可能是由于 yumdb 损坏造成的:可能是由“yum update”进程或软件包安装的障碍引起的。
要修复此错误,您需要通过运行以下命令来清理数据库缓存。
yum clean dbcache
如果上述命令无法运行(修复错误),请尝试运行以下一系列命令。
yum clean all #delete entries in /var/cache/yum/ directory.
yum clean metadata #clear XML metadeta
yum clean dbcache #clear the cached files for database
yum makecache #make cache
最后,您必须重建系统的 RPM 数据库才能正常工作。
mv /var/lib/rpm/__db* /tmp
rpm --rebuilddb
如果您很好地遵循了上述说明,那么错误现在应该已解决。然后尝试按如下方式更新您的系统。
yum update
您还可以查看这些有关 yum 和其他 Linux 包管理器的重要文章:
- 如何使用“Yum History”查找已安装或已删除的软件包信息
- Linux 中用于 RPM 包管理的 27 个“DNF”(Yum 分支)命令
- 什么是 APT 和 Aptitude?它们之间的真正区别是什么?
- 如何使用“apt-fast”通过多个镜像加速 apt-get/apt 包下载
您对这个主题有任何疑问或想法要分享,请使用下面的评论部分来分享。