网站搜索

如何修复 Yum 错误:数据库磁盘映像格式错误


在本文中,我们将简要介绍 YUMYumDB,然后介绍 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_repoinstalled_byreleasever 等..),您可能什么也看不到对他们来说很重要。

要访问其中的信息,您必须安装 yum-utils,它提供了一个名为 yumdb 的脚本 - 然后按如下所述使用该脚本。

yum install yum-utils 

以下命令将获取安装了 httpdrepo

yumdb get from_repo httpd

要定义关于包 httpdmariadb 的注释,请键入。

yumdb set note "installed by aaronkilik to setup LAMP" httpd mariadb

要查看有关 httpdmariadb 的所有 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 包管理器的重要文章:

  1. 如何使用“Yum History”查找已安装或已删除的软件包信息
  2. Linux 中用于 RPM 包管理的 27 个“DNF”(Yum 分支)命令
  3. 什么是 APT 和 Aptitude?它们之间的真正区别是什么?
  4. 如何使用“apt-fast”通过多个镜像加速 apt-get/apt 包下载

您对这个主题有任何疑问或想法要分享,请使用下面的评论部分来分享。