DNF –用于基于RPM的发行版的下一代软件包管理实用程序
最近的新闻引起了许多Linux用户,专业人士和学习者的注意,“ DNF”(stands for nothing officially)将取代发行版中的“ YUM”软件包管理实用程序,即正在使用的Fedora,CentOS,RedHat等 RPM软件包管理器。
这个消息非常令人惊讶,并且打包程序管理器或多或少地附加到Linux发行版的标识上,该发行版负责安装,更新和删除软件包。
YUM(代表Yellowdog Updater,Modified)是在GNU通用公共许可证下发布的基于开源命令行的免费实用程序,主要用Python编程语言编写。 YUM是在杜克大学开发用于管理和更新RedHat Linux的,后来得到了广泛的认可,并成为RedHat Enterprise Linux,Fedora,CentOS和其他基于RPM的Linux发行版的程序包管理器。它通常被Linux专业人员非正式地称为“您的软件包管理器”。
The Idea to Replace Yum With DNF
DNF项目的开发者Ale¨Kozumplík
是RedHat Employee
。他说: “在2009年,当他在研究'Anaconda'
–系统安装程序时,第一次了解Linux
。他想从事一个完全不同的项目,这使他可以探索Fedora
的包装工具。” Ale¨Kozumplík
说–他已经厌倦了解释DNF代表什么都不是,它是程序包管理器名称的答案,就这样,仅此而已。必须将其命名为与YUM不冲突的名称,因此将其命名为DNF。 Yum的不足之处导致DNF的建立:
- YUM的依赖关系解析是一场噩梦,已在DNF中使用SUSE库“ libsolv”和Python包装器以及C Hawkey进行了解析。
- YUM没有文档化的API。
- 建立新功能很困难。
- 除Python外,不支持扩展。
- 减少内存消耗,减少元数据的自动同步,这是一个耗时的过程。
Ale¨Kozumplík
表示,除了派遣YUM并开发DNF之外,他别无选择。 YUM软件包维护者尚未准备好实施这些更改。 YUM具有大约59000 LOC,而DNF具有29000 LOC(代码行)。
The DNF Development
DNF首次出现在Fedora 18中。 Fedora 20是第一个欢迎用户使用DNF代替YUM的Linux发行版。 DNF如今面临的技术挑战–实现YUM的所有功能。对于普通用户,DNF提供软件包下载,安装,更新,降级和删除的功能。但是,仍然很少或根本不支持某些功能,例如–在安装过程中跳过损坏的软件包,调试,详细输出,启用回购,在安装过程中排除软件包等。
DNF及其前身的比较:
- No effect of –skip-broken switch.
- Command Update = Upgrade
- The command resolvedep unavailable
- The option skip_if_unavailable is ON by default
- Dependency resolving process is not visible in Command Line.
- Parallel downloads in future release.
- Undo History
- Delta RPM
- Bash completion
- Auto-remove, etc.
RHEL不时质疑DNF与fedora以及以后在商业环境中的集成。最新版本是DNF 0.6.0,已于2014年8月12日发布。
Testing DNF Commands
使用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
注意:如上所述,update = upgrade。所以。该软件包将实现滚动发布之类的功能吗? –未来的问题。
dnf配置文件的默认位置:/etc/dnf/dnf.conf。
参考:YUM (Yellowdog Updater, Modified) – 20 Commands for Package Management
RPM (Red Hat Package Manager) – 20 Practical Examples of RPM Commands