DNF管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNF管理相关的知识,希望对你有一定的参考价值。

DNF

新一代的RPM软件包管理器。DNF 发行日期是2015年5月11日,DNF 包管理器采 用Python 编写,发行许可为GPL v2,首先出现在Fedora 18 发行版中。在 RHEL 8.0 版本正式 取代了 YUM,DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用, 依赖分析,运行速度等
注意:DNF 并未默认安装在 RHEL 或 CentOS 7系统中,但是 Fedora 22 已经默认使用 DNF

  • 配置文件:/etc/dnf/dnf.conf
  • 仓库文件:/etc/yum.repos.d/ *.repo
  • 日志: /var/log/dnf.rpm.log,/var/log/dnf.log

用法与yum一致

dnf --version
dnf repolist
dnf install httpd
dnf remove httpd
dnf clean all
dnf makecache
dnf list installed
dnf list available
dnf search nano
dnf history undo 1

安装DNF包管理器

  • 1、为了安装 DNF ,必须先安装并启用 epel-release 依赖
    yum install epel-release
    或者
    #yum install epel-release -y
    其实这里并没有强制使用”-y”的理由,相反的,在不使用”-y”的情况下,用户可以在安装过程中查看到底有哪些东西被安装进了系统。但对于没有这个需求的用户,可以使用”-y”参数来自动安装所有东西。
  • 2、使用 epel-release 依赖中的 YUM 命令来安装 DNF 包。在系统中执行以下命令
    yum install dnf
  • 安装完成

常用命令示例

查看安装在系统中的DNF包管理器的版本
#dnf –version
技术图片
查看系统中可用的 DNF 软件库
#dnf repolist
技术图片
显示系统中可用和不可用的所有的 DNF 软件库
#dnf repolist all
技术图片
列出所有RPM包
#dnf list
技术图片
列出所有安装了的 RPM包
#dnf list installed
技术图片
列出所有可供安装的RPM包
#dnf list available
技术图片
搜索软件库中的 RPM 包:不知道想要安装的软件的准确名称时,可以用该命令来搜索软件包。需要在”search”参数后面键入软件的部分名称来搜索。(在本例中使用”nano”)
#dnf search nano
技术图片
查找某一文件的提供者:想要查看是哪个软件包提供了系统中的某一文件时,可以使用这条命令。(在本例中,查找”/bin/bash”这个文件的提供者)
#dnf provides /bin/bash
技术图片
查看软件包详情
#dnf info nano
技术图片
安装软件包:系统将会自动安装对应的软件及其所需的所有依赖(在本例中,安装nano软件)
#dnf install nano
技术图片
升级软件包(在本例中,升级”systemd”这一软件包)
#dnf update systemd
技术图片
检查系统所有软件包的更新
#dnf check-update
技术图片
升级所有系统软件包
#dnf update 或 # dnf upgrade
技术图片
删除软件包(在本例删除”nano”这一软件包)
#dnf remove nano 或 #dnf erase nano
技术图片
删除无用孤立的软件包
#dnf autoremove

技术图片
删除缓存的无用软件包
#dnf clean all
技术图片
获取有关某条命令的使用帮助(本例中获取有关命令”clean”的使用帮助)
#dnf help clean
技术图片
查看所有的DNF命令及其用途
#dnf help
技术图片
查看DNF命令的执行历史
#dnf history
技术图片
查看所有的软件包组
#dnf grouplist
技术图片
安装一个软件包组(本例中,安装”Educational Software”这个软件包组)
#dnf groupinstall ‘Educational Software’
技术图片
升级一个软件包组中的软件包(本例中,升级”Educational Software”这个软件包组中的软件)
#dnf groupupdate ‘Educational Software’
技术图片
删除一个软件包组(本例中,删除”Educational Software”这个软件包组)
#dnf groupremove ‘Educational Software’
技术图片
从特定的软件包库安装特定的软件(本例中从软件包库 epel 中安装 phpmyadmin 软件包)
#dnf –enablerepo=epel install phpmyadmin
更新软件包到最新的稳定发行版
#dnf distro-sync
重新安装特定软件包(本例中,重新安装”nano”这个软件包)
#dnf reinstall nano
技术图片
回滚某个特定软件的版本(本例中,降低”acpid”这个软件包的版本)
#dnf downgrade acpid
样例输出:
Using metadata from Wed May 20 12:44:59 2015
No match for available package: acpid-2.0.19-5.el7.x86_64
Error: Nothing to do.
在执行这条命令的时候, DNF 并没有按照我期望的那样降级指定的软件(“acpid”)。该问题已经上报

以上是关于DNF管理的主要内容,如果未能解决你的问题,请参考以下文章

DNF 缺少配置管理器命令

CentOS 7使用dnf软件包管理器

Centos7安装dnf工具管理rpm包

CentOS 8 中dnf管理器如何仅下载不安装软件

linux 从入门到跑路 - rpm ,yum , dnf (软件包管理三兄弟)

KVM虚拟机管理脚本