在本文中,我们将简要描述YUM , YumDB ,然后是Yum错误的原因:数据库磁盘映像格式错误,以及如何解决此错误。
YUM(Yellowdog Updater,Modified)是用于基于RPM(RedHat Package Manager)的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
查看Yum数据库
您可以查看其中一个子目录,以了解有关yumdb的更多信息,如下所示。
# cd b # ls
检查Yum包信息
虽然这些信息对于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数据库缓存
如果上述命令无法正常工作(修复错误),请尝试运行以下命令。
# 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
清除所有Yum DB缓存和元数据
最后,您必须重建系统的RPM数据库才能正常工作。
# mv /var/lib/rpm/__db* /tmp # rpm --rebuilddb
重建RPM数据库
如果您遵循上述说明,那么现在应该解决错误。 然后尝试更新您的系统如下。
# yum update
您还可以查看有关yum和其他Linux软件包管理器的重要文章:
- 如何使用“Yum历史”来查找已安装或删除的软件包信息
- 27“DNF”(Yum的叉)Linux中的RPM包管理命令
- 什么是APT和Aptitude? 他们之间有什么真正的区别?
- 如何使用“apt-fast”来加速apt-get / apt包下载使用多个镜像
您有任何关于此主题的任何疑问或想法,请使用下面的评论部分来做到这一点。