DNF新一代的RPM软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,他取代了YUM,正式成为 Fedora 22 的包管理器。

说明:DNF包管理工具只是代替yum客户端的工具,实质上dnf和yum都还是使用同一个YUM源。

DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。

提示:实际使用中,dnf确实比yum快很多。

DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。

DNF 的最新稳定发行版版本号是 1.0,发行日期是2015年5月11日。 这一版本的额 DNF 包管理器(包括在他之前的所有版本) 都大部分采用 Python 编写,发行许可为GPL v2.

– 安装 DNF 包管理器

DNF 并未默认安装在 RHEL 或 CentOS 7系统中,但是 Fedora 22 已经默认使用 DNF .

1.为了安装 DNF ,您必须先安装并启用 epel-release 依赖。

在系统中执行以下命令:

# yum install epel-release

2.手动安装python-hawkey需要的依赖包下载地址:http://springdale.math.ias.edu/data/puias/7.6/x86_64/os/Packages/

wget http://springdale.math.ias.edu/data/puias/7.6/x86_64/os/Packages/libsolv-0.6.34-2.el7.x86_64.rpm

wget http://springdale.math.ias.edu/data/puias/7.6/x86_64/os/Packages/hawkey-0.6.3-4.el7.x86_64.rpm

wget http://rpm.pbone.net/index.php3/stat/4/idpl/51213105/dir/centos_7/com/python2-hawkey-0.6.3-4.el7.x86_64.rpm.html

说明:如果安装的是python2-hawkey,那么后面安装的dnf命令将变成dnf-2

3.手动安装dnf需要的3个安装包到这里下载  http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/

# wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/dnf-0.6.4-2.sdl7.noarch.rpm
# wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/dnf-conf-0.6.4-2.sdl7.noarch.rpm
# wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/python-dnf-0.6.4-2.sdl7.noarch.rpm

# yum install python-librepo
# yum install python-libcomps
# yum install deltarpm
# yum install libreport-filesystem
# yum install python-hawkey (这个包可能无法通过yum安装,就只能手动安装及其依赖)
# rpm -ivh dnf-conf-0.6.4-2.sdl7.noarch.rpm
# rpm -ivh python-dnf-0.6.4-2.sdl7.noarch.rpm
# rpm -vih dnf-0.6.4-2.sdl7.noarch.rpm

然后, DNF 包管理器就被成功的安装到你的系统中了。

在这个教程中,您将会学到27个用于 DNF 包管理器的命令。使用这些命令,你可以方便有效的管理您系统中的 RPM 软件包。现在,让我们开始学习 DNF 包管理器的27条常用命令吧!

– 查看 DNF 包管理器版本

用处:该命令用于查看安装在您系统中的 DNF 包管理器的版本

命令:

# dnf –version

centos dnf 包 目录 centos7安装dnf_python

– 查看系统中可用的 DNF 软件库

用处:该命令用于显示系统中可用的 DNF 软件库

命令:

# dnf repolist

centos dnf 包 目录 centos7安装dnf_php_02

– 查看系统中可用和不可用的所有的 DNF 软件库

用处:该命令用于显示系统中可用和不可用的所有的 DNF 软件库

命令:

# dnf repolist all

centos dnf 包 目录 centos7安装dnf_运维_03

– 列出所有 RPM 包

用处:该命令用于列出用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包

命令:

# dnf list

centos dnf 包 目录 centos7安装dnf_包管理器_04

– 列出所有安装了的 RPM 包

用处:该命令用于列出所有安装了的 RPM 包

命令:

# dnf list installed

centos dnf 包 目录 centos7安装dnf_python_05

– 列出所有可供安装的 RPM 包

用处:该命令用于列出来自所有可用软件库的可供安装的软件包

命令:

# dnf list available

centos dnf 包 目录 centos7安装dnf_centos dnf 包 目录_06

– 搜索软件库中的 RPM 包

用处:当你不知道你想要安装的软件的准确名称时,你可以用该命令来搜索软件包。你需要在”search”参数后面键入软件的部分名称来搜索。(在本例中我们使用”nano”)

命令:

# dnf search nano

centos dnf 包 目录 centos7安装dnf_运维_07

– 查找某一文件的提供者

用处:当你想要查看是哪个软件包提供了系统中的某一文件时,你可以使用这条命令。(在本例中,我们将查找”/bin/bash”这个文件的提供者)

命令:

# dnf provides /bin/bash

centos dnf 包 目录 centos7安装dnf_包管理器_08

– 查看软件包详情

用处:当你想在安装某一个软件包之前查看它的详细信息时,这条命令可以帮到你。(在本例中,我们将查看”nano”这一软件包的详细信息)

命令:

# dnf info nano

centos dnf 包 目录 centos7安装dnf_php_09

对比 dnf install nginx和 yum install nginx的不同

# dnf-2 install nginx

centos dnf 包 目录 centos7安装dnf_运维_10

# yum install nginx

centos dnf 包 目录 centos7安装dnf_centos dnf 包 目录_11

通过上面的对比,可以看出来dnf安装软件包时不区分目标和依赖,而是直接列出所有相关的软件包。