Linux入门系统菜鸟

了解DNF命令 全新基于RPM分发的下一代包管理实用程序

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

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

这个消息是相当令人兴奋的,然而随着RHEL8/CentOS8的发布,官方已确认默认将dnf命令替换为原有的yum命令。

YUM(Yellowdog包管理器 )是在GNU通用公共许可证发布了一个免费和开源的基于命令行的工具,它主要用Python编写的编程语言。 YUM开发用于管理和更新RedHat Linux,后来得到广泛的认可,并成为RedHat企业Linux,Fedora,CentOS和其他基于RPM的Linux发行版的包管理器。

 

用DNF代替Yum的想法

DNF项目的开发者,RedHat的员工,ALEKozumplík说:

“ 2009年,我在从事系统安装程序’ Anaconda ‘的工作时,第一次了解Linux。我想从事一个完全不同的项目,这使我可以探索Fedora的包管理工具。我已经厌倦了解释DNF代表什么,它是一个软件包管理器名称没有别的意义。 为了不与YUM的命名冲突,因此它被命名为DNF。

由于Yum的先天不足之处导致了DNF的诞生:

  1. YUM的依赖关系解析是一场噩梦,它在DNF中使用SUSE库“ libsolv”和Python包装器以及C Hawkey进行了解析。
  2. YUM没有文档化的API接口。
  3. 建立新功能很困难。
  4. 除Python外,不支持其他扩展。
  5. 无法达到最小化内存消耗以及最小化元数据使用。

Ale¨Kozumplík表示,YUM软件包维护者尚未准备好做这些更新。YUM目前具有大约59000行代码,而DNF只具有29000 行代码

 

DNF开发

DNF首次出现在Fedora 18中。Fedora 20是第一个正式使用DNF代替YUM的Linux发行版。

DNF如今面临的技术挑战–实现YUM的所有功能。对于普通用户,DNF提供软件包下载,安装,更新,降级和删除的功能。但是,仍然很少不支持的某些功能,例如–在安装过程中跳过损坏的软件包,调试,详细输出,在安装过程中排除软件包等。

 

DNF命令的基本用法

使用yum命令在fedora或更高版本在RHEL / CentOS上安装dnf。

# yum install dnf

使用概要。

dnf [options] <command> [<argument>]

安装软件包。

# dnf install <name_of_package>

删除软件包。

# dnf remove <name_of_package>

更新和升级系统。

# dnf update
# dnf upgrade

:DNF配置文件的默认位置:/etc/dnf/dnf.conf。

 

DNF命令的高级用法

请参见后续文章《在Linux下DNF软件包管理工具中27个命令例子

 

(END)

原文翻译自:https://www.tecmint.com/dnf-next-generation-package-management-utility-for-linux/