早期的 Linux 系统在安装、升级、卸载服务程序时还要考虑到其他程序、库 的依赖关系,所以在进行校验、安装、卸载、查询、升级等软件操作时难度都非常大。RPM 机制则正是为了解决这些问题而设计的。
RPM 有点像 Windows 系统中的控制面板,会建立统一的数据库,详细记录软件信息并 能够自动分析依赖关系。
尽管 RPM 能够帮助用户查询软件之间的依赖关系,但问题还是要运维人员自己来 解决,而有些大型软件可能与数十个程序都有依赖关系,在这种情况下安装软件依然很繁琐。 Yum 软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术。Yum 软件仓库可以根据用户的要求分析出所需软件包及其相关的依赖关系,然后自动从服务器下载软件包并安装到系统。
Yum 虽然解决了软件的依赖关系问题,但 仍然还是存在分析不准确、内存占用量大、不能多人同时安装软件等硬伤。DNF 就是解决 了上述问题的 Yum 软件仓库的提升版,行业内称之为 Yum v4 版本。DNF 特别友好地继承了原有的命令格式,且使用 习惯上也保持了一致。