一、rpm数据库主要功能
1、依赖关系校验 安装/升级/卸载软件时,自动读取requires、provides、conflictname索引,检查依赖是否满足、有没有软件冲突,防止软件装完无法运行。 执行rpm -q –requires yum就是从rpm数据库的requires索引查询。 2、包信息查询 rpm -qa、rpm -qi、rpm -ql、rpm -qc全部从数据库读取已安装包的名称、版本、描述、安装文件列表、配置文件。 3、反向查询文件归属 rpm -qf /usr/bin/ls通过Basenames、Dirnames索引,快速查到某个文件来自哪个rpm包。 4、文件完整性校验 rpm -V 报名:对比数据库中光存储的文件md5、权限、属猪、大小、检查文件是否被篡改,误删。 5、软件升级、替换、淘汰处理 依靠obsoletename、provides实现旧包被新包替换、虚拟依赖兼容。 6、安全校验、签名管理 数据库记录每个包的签名信息,用于校验软件是否被篡改、是否可信官方源包。 7、包卸载 卸载时从数据库读取该包所有安装过的文件,批量删除;保留配置文件(如果标记为配置文件),同时从数据库删除该软件所有元数据。 8、yum、dnf与rpm数据库关系
yum、dnf没有自己独立的“软件包数据库”。
系统层面:整个rhel/centos体系只有唯一一个软件包数据库——rpm数据库(/var/lib/rpm)。
dnf/yum本质是高级包管理前端工具,它们所有“已安装包查询、版本比对、依赖校验、升级卸载”的底层数据,全部完全依赖rpm数据库。
简单层级:
dnf/yum(




