目录
[3.DNF(Yum v4 版本)](#3.DNF(Yum v4 版本))
1.RPM(红帽软件包管理)
在RPM(红帽软件包管理)公布之前,要想在Linux系统中安装软件,只能采取编译源码包的方式。
早期安装软件是一件非常困难、耗费耐心的事情,而且大多数的服务程序仅仅提供自身的源代码,还需要运维人员编译代码之后自行解决软件之间的依赖关系。
总而言之,早期的 Linux 系统在安装、升级、卸载服务程序时还要考虑到其他程序、库的依赖关系,所以在进行校验、安装、卸载、查询、升级等软件操作时难度都非常大。RPM机制则正是为了解决这些问题而设计的。
RPM有点像Windows系统中的控制面板,会建立统一的数据库,详细记录软件信息并能够自动分析依赖关系。表 1-1 所示为一些常用的RPM软件包命令。
2.YUM软件仓库
但是,尽管RPM能够帮助用户查询软件之间的依赖关系,但问题还是要运维人员自己来解决,而有些大型软件可能与数十个程序都有依赖关系,在这种情况下安装软件依然很繁琐。Yum软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术。Yum软件仓库可以根据用户的要求分析出所需软件包及其相关的依赖关系,然后自动从服务器下载软件包并安装到系统。Yum软件仓库的技术拓图扑如图所示。
Yum软件仓库中的RPM软件包可以是由红帽官方发布的,也可以是由第三方发布的,当然也可以是自己编写的。表1-2所示为一些常见的Yum命令。
3.DNF(Yum v4 版本)
原本以为故事到此就要结束了,可是人们发现Yum虽然解决了软件的依赖关系问题,但仍然还是存在分析不准确、内存占用量大、不能多人同时安装软件等硬伤。终于,在2015年随着Fedora 22系统的发布,红帽又给了我们一个新的选择---DNF。DNF实际上就是解决了上述问题的Yum软件仓库的提升版,行业内称之为Yum v4版本。
作为Yum软件仓库v3版本的接替者,DNF特别友好地继承了原有的命令格式,且使用习惯上也保持了一致。大家不用担心不会操作,我们来看一个例子。以前,安装软件用的命令是"yum install软件包名称",那么现在则是"dnf install 软件包名称"(也就是说,将yum替换成dnf即可)。
当然 RHEL 8 系统也照顾到了老用户的习惯问题,同时兼容并保留了 yum 和 dnf 两个命令,大家在实际操作中随意选择就好。甚至这两个命令的提示信息都基本一样,感知不到什么区别。
4.Debian系的软件仓库APT
APT 是一个Debian系的用于处理软件包管理的工具,允许用户轻松地安装、更新和卸载软件包。
apt和apt-get都是Linux系统中的包管理工具,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。它们之间的主要区别如下:
- apt-get:这是一个较早的工具,主要用于处理底层的包管理任务,如安装和删除软件包文件。
- apt:这是一个较新的工具,它提供了一个更统一,更适合终端用户使用的接口。apt命令是对之前的apt-get、apt-cache等的封装,提供更加统一,更加适合终端用户使用的接口。
简单来说就是:apt = apt-get、apt-cache和apt-config中最常用命令选项的集合。
总的来说,apt和apt-get都是用来管理软件包的,但apt提供了一个更统一,更适合终端用户使用的接口。
5.总结
注意事项:
- 软件仓库本身也是软件,可以通过软件仓库下载软件仓库,例如yum install dnf;
- 目前apt已经内置了apt-get;
- 红帽系的软件仓库和debian系两者不能互用;
- 某些老软件可能只能通过老的软件仓库来下载;
- 一个软件仓库有多个仓库,可以通过换源来更换,换源可以帮助用户获得更快的下载速度、更新频率更高的软件包,或者获取特定版本的软件。