在最近推出的Red Hat Enterprise Linux 8中,原来的YUM已经不复存在,仅有YUM之名被保留,已经被DNF(Dandified YUM)取代。因为2013年7月8日,YUM项目领导人Seth Vidal骑行被撞身亡以后,红帽及开源社区发表声明称,将会永远不会忘记Seth对开源社区的贡献,这次仍以YUM为名,大概就是对这个承诺的坚守。算法
DNF于2015年在Fedora项目孵化成形,将原先混乱不堪的YUM提高到一个新的高度。相较于原来的YUM而言,DNF(或者新YUM)主要解决了如下两个问题:数据库
一、速度bash
相较以往的YUM而言,速度大大提升。操作系统
二、依赖的算法命令行
以在往的YUM安装过程当中,常常会出现找不到依赖包的问题,进而须要用户使用--skip-broken,即跳过找不到的安装包。在DNF中,在Libsolv的支撑下,这个问题将一去不复返。code
RHEL8中,YUM仓库的变化很大。一个配置文件中,YUM仓库被分红两部分:server
1)BaseOS,这部分主要收集的是操做系统核心的功能blog
2)AppStream,这部分则主要收集用户空间的安装包图片
然而,在用户层面,最大的区别在于安装包的管理规则上。当前的管理更加精细,可能意味着更加难懂,更加复杂。此前,要安装MariaDB数据库,咱们这样安装:ip
[root@localhost ~]# yum install -y mariadb mariadb-server
由于MariaDB有几个安装包,因此要单独写出来。如今,设定要组合,就不须要那么折腾了。
[root@localhost ~]# yum module install mariadb:10.4/server
同一个YUM仓库中,能够有几个版本存在,还能够设置几个安装组合,如上面这个命令行中的/server,就是要安装一个名叫server的软件组合。这个组合是本身设定的。名称固然也能够本身随意设置,不叫server也行。
在上面的示意图中,与yum的安装包并列的,还有一种叫模块的东西。多了这个层次或多了这个管理方法,相应地在yum命令下,增长了一个module子命令。
# yum module -h # yum module list
多了个模块(module)、模块下多了个序列(Stream)、序列下多了个组合(profile)。好比MariaDB中,建立了一个模块,包含了一个10.3版本的序列,其下有client、server和glera三种安装组合。其中,server组合后,有一个“[d]”,如图片最下方所示,那是缺省的安装组合。若是你安装的时候没有指定组合,则会安装这个server组合。下面两条命令的最终效果是同样的:
# yum module install mariadb:10.3/server # yum module install mariadb:10.3
YUM = YellowDog Update Modifier
DNF = Dandified YUM
参考:
2013年Seth Vidal去世的消息 https://www.redhat.com/en/blog/thank-you-seth-vidal
https://developers.redhat.com/blog/2016/08/30/why-red-hats-new-dnf-package-manager-is-not-just-another-yum-2/