DNF:RHEL/CentOS8下一代包管理工具

查理谈科技 2024-05-12 22:54:22

用了#CentOS8# 之后, 突然发现#DNF# 命令有点多, 对于长期使用#CentOS7#的我来说, 用yum 挺顺手的, 这个#DNF#是什么鬼? 不是有个游戏#地下城与勇士#也叫DNF吗?赶紧学习学习。

DNF, 全称Dandified Yum,由 Yum 中分支出来,采用了基于 SAT 依赖解决算法,是新一代的RPM软件包管理器,。他首先出现在 Fedora 18 这个发行版中。而最近,他取代了YUM,正式成为 Fedora 22 的包管理器。DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。DNF没有预装在 CentOS 和 RHEL 7 中,但可以在使用 YUM 的同时使用 DNF, 在RHEL/CentOS8 之后, DNF就是默认安装的。

Yum 是 RPM 的前端工具,它管理依赖关系和资源库,然后使用 RPM 来安装、下载和删除包。Yum 主要是用 Python 编写的,它有自己的应对依赖解析的方法。 Yum 有三大问题:API 缺乏文档、有问题的依赖解决算法,以及无法重构内部函数。这里提到的最后一个问题,其实和文档的缺乏有关。Yum 插件使用的各种方法来源于 Yum 的代码,一旦改变有可能造成 Yum 的突然崩溃!它的 API 没有完整的文档,它的扩展系统只允许 Python 插件。

由于 Yum 许多长期存在的问题仍未得到解决,因此 Yum 包管理器已被 DNF 包管理器取代。这些问题包括性能差、内存占用过多、依赖解析速度变慢等。Yum 无法适应倡导“默认即 Python 3”理念的 Fedora ,而 DNF 则可以同时支持 Python 2 和 Python 3。 DNF 按照相同的语义逻辑保留了命令行接口的一致。幸运的是,DNF 的 Python API 是完全不同于 Yum 的。

DNF会兼容YUM ,因此从命令行使用上看并没有太大区别。

YUM 和DNF比较:

yum install –> dnf install

yum upgrade –> dnf upgrade

yum remove –> dnf remove

yum list installed –> dnf list installed

yum search search_string –> dnf search search_string

yum repolist –> dnf repolist

DNF 常用操作:

安装新的package:dnf install httpd安装时候指定默认同意选项:dnf install httpd-manual -y查找可用的更新:dnf check-update更新RPM包:dnf update bash -y单独下载RPM包对应的文件:

需要先安装一个插件dnf install dnf-plugins-core然后就可以下载了:dnf download httpd卸载RPM包:dnf remove httpd重新安装 Package:dnf reinstall httpd -y查看 源Repository 信息:dnf repolist all

增加阿里云的源:dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo打开或者关闭指定源 Repository:dnf --enablerepo=disabled-repo install package-example

查找某个包:

dnf search php

查看包的具体信息:

dnf info httpd

列出已经安装的包:dnf list installed

查看可用的包:

dnf list available | grep httpd

0 阅读:0

查理谈科技

简介:感谢大家的关注