YUM已死,DNF的时代已经到来
2018-11-26阅读 5584


在最近发布的红帽企业Linux 8.0测试版中,已经使用DNFDandified Yum)取代了软件包管理器YUMYellowdog Updater, Modified),成为新一代RPM发行版软件包管理器。

DNF并不是横空出世,早在Fedora 18中已经出现,并在Fedora 22中使用dnf替代yum,旨在克服YUM软件包管理器的一些瓶颈,使用C语言库hawkey进行软件包依赖关系解析,从而大幅度提升包管理操作效率,同时也降低了内存消耗,从而提升用户体验。DNFYUM最大的优点在于如果配置和启用的库没有响应,dnf将跳过它并使用可用的repos继续事务,而不像YUM,如果配置库不可用,yum将立即停止工作。


下面就来体验一下DNF软件包管理器的使用吧,这里使用Fedora29系统为操作对象。

# cat /etc/redhat-release

Fedora release 29 (Twenty Nine)

这个版本的系统,使用的是4.0.4版本的DNF软件包管理器。

# dnf --version

4.0.4

Installed: dnf-0:4.0.4-1.fc29.noarch at Sun 25 Nov 2018 03:55:15 AM GMT

Built : Fedora Project at Mon 15 Oct 2018 12:00:52 PM GMT

Installed: rpm-0:4.14.2-1.fc29.x86_64 at Sun 25 Nov 2018 03:54:24 AM GMT

Built : Fedora Project at Wed 22 Aug 2018 08:07:47 AM GMT

可以使用dnf --help查看dnf命令的帮助信息,可以看到这个命令和yum的使用类似。

# dnf --help

usage: dnf [options] COMMAND

List of Main Commands:

……

history display, or use, the transaction history

info display details about a package or group of packages

install install a package or packages on your system

list list a package or groups of packages

makecache generate the metadata cache

provides find what package provides the given value

reinstall reinstall a package

remove remove a package or packages from your system

repolist display the configured software repositories

dnf使用dnf repolist查看当前系统中可以使用的DNF 软件库。

# dnf repolist

Last metadata expiration check: 0:12:52 ago on Sun 25 Nov 2018 01:15:54 PM CST.

repo id repo name status

*fedora Fedora 29 - x86_64 58,207

*fedora-modular Fedora Modular 29 - x86_64 8

*updates Fedora 29 - x86_64 - Updates 12,040

*updates-modular Fedora Modular 29 - x86_64 - Updates 9

可以使用dnf list列出所有来自库的可用软件包和所有已经安装在系统上的软件包;如果只想列出所有已经安装了的RPM包,可以使用dnf list installed命令;如果是列出可供安装的,则使用 dnf list available命令。

如果你不知道想要安装软件包名称的话,可以使用dnf search 后添加关键字来搜索软件包,如:dnf search "web server" ;想看某软件包的详细信息,可以使用dnf info软件包名 的方式查看;dnf也可以像yum一样去使用provides查询某个命令或某个文件是由哪个软件包提供的,如:

# yum provides ssh

Last metadata expiration check: 0:00:46 ago on Sun 25 Nov 2018 04:32:58 PM CST.

openssh-clients-7.8p1-3.fc29.x86_64 : An open source SSH client applications

Repo : @System

Matched from:

Filename : /usr/bin/ssh

安装openssh-clients软件包

# dnf install openssh-clients

怎么样,是不是使用dnf来管理RPM软件包和使用yum管理软件包的方式在很多地方都是类似的,可以说大多数的dnf命令使用yum用户熟悉的指令哦,并且二者使用相同的RPM包存储库。