DNF的时代已经到来
在最近发布的红帽企业Linux 8.0测试版中,已经使用DNF(Dandified Yum)取代了软件包管理器YUM(Yellowdog Updater, Modified),成为新一代RPM发行版软件包管理器。
DNF并不是横空出世,早在Fedora 18中已经出现,并在Fedora 22中使用dnf替代yum,旨在克服YUM软件包管理器的一些瓶颈,使用C语言库hawkey进行软件包依赖关系解析,从而大幅度提升包管理操作效率,同时也降低了内存消耗,从而提升用户体验。DNF较YUM最大的优点在于如果配置和启用的库没有响应,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包存储库。
注:本文最早由东方瑞通专职讲师刘煜老师发表于东方瑞通官网讲师原创专区,转载请注明出处!