您当前的位置: 首页 >  linux

liaowenxiong

暂无认证

  • 4浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Linux命令之 DNF -- 新一代的 RPM 软件包管理器

liaowenxiong 发布时间:2021-07-20 17:24:25 ,浏览量:4

文章目录
  • 一、命令介绍
  • 二、安装 DNF
  • 三、DNF 命令
    • (一)主要命令
      • 1. 安装、升级和删除软件包
      • 2. 查询和检查软件包
      • 3. 执行其它功能
    • (二)插件命令
  • 四、选项参数
  • 五、命令示例
    • (一)安装、升级和删除软件包
      • 安装软件包
      • 安装一个软件包组
      • 升级一个软件包组中的软件包
      • 删除一个软件包组
      • 从特定的软件包库安装特定的软件
      • 更新软件包到最新的稳定发行版
      • 升级软件包
      • 重新安装特定软件包
      • 升级所有系统软件包
      • 删除软件包
      • 删除无用孤立的软件包
      • 删除缓存的无用软件包
    • (二)查询和检验软件包
      • 查看系统中可用的 DNF 软件库
      • 查看所有的软件包组
      • 查看系统中可用和不可用的所有的 DNF 软件库
      • 列出所有 RPM 包
      • 列出所有安装了的 RPM 包
      • 列出所有可供安装的 RPM 包
      • 搜索软件库中的 RPM 包
      • 查找某一文件的提供者
      • 查看软件包详情
      • 检查系统软件包的更新
    • (三)执行其它功能
      • 查看安装在您系统中的 DNF 包管理器的版本
      • 获取有关某条命令的使用帮助
      • 查看所有的 DNF 命令及其用途
      • 查看 DNF 命令的执行历史
      • 回滚某个特定软件的版本

一、命令介绍

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

DNF 包管理器克服了 YUM 包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF 使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。你可以在这里获得关于 DNF 的更多知识:《DNF 代替 YUM ,你所不知道的缘由》

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

二、安装 DNF

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

  1. 为了安装 DNF ,您必须先安装并启用 epel-release 依赖。在系统中执行以下命令:
[root@htlwk0001host ~]# yum install epel-release
  1. 接着在系统中执行以下命令:
[root@htlwk0001host ~]# yum install dnf
三、DNF 命令 (一)主要命令 1. 安装、升级和删除软件包 命令说明install向系统中安装一个或多个软件包reinstall重新安装软件包update更新指定的软件包,若没有指定软件包,则会更新系统所有的软件包updateinfo显示软件包的参考建议upgrade升级系统中的一个或多个软件包remove从系统中移除一个或多个软件包autoremove删除所有原先因为依赖关系安装的现在不需要的软件包clean all删除缓存的无用软件包及其相关数据groupinstall安装一个软件包组groupupdate升级一个软件包组中的软件包groupremove删除一个软件包组distro-sync更新软件包到最新的稳定发行版 2. 查询和检查软件包 命令说明repolist显示系统中可用的 DNF 软件库(软件仓库)list列出用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包search在软件包详细信息中搜索指定字符串,即搜索与指定字符串有关的软件包repoquerySearches available DNF repositories for selected packages and displays the requested information about them. It is an equivalent of rpm -q for remote repositories. 搜索匹配关键字的软件包provides查找提供指定内容的软件包info显示关于软件包或软件包组的详细信息check-update检查是否有软件包升级grouplist查看所有的软件包组check在包数据库中寻找问题deplist列出软件包的依赖关系和提供这些软件包的源 3. 执行其它功能 命令说明downgrade回滚软件包的版本,降级到旧版本makecache创建元数据缓存mark在已安装的软件包中标记或者取消标记由用户安装的软件包。help查看使用帮助,若后面跟着目录,则查看该命令的使用帮助,例如:dnf help install (二)插件命令 命令说明builddepInstall build dependencies for package or spec filechangelog查看软件包的改变日志数据config-managermanage dnf configuration options and repositoriesdebug-dump转储已安装的 RPM 软件包信息至文件debug-restore恢复调试用转储文件中的软件包记录debuginfo-install安装调试信息软件包download下载软件包至当前目录needs-restarting判断所升级的二进制文件是否需要重启playground与 Playground 仓库交互。repoclosure显示仓库中未被解决的依赖关系的列表repodiff列出两组仓库中的不同repograph以点线图方式输出完整的软件包依赖关系图repomanage管理 RPM 软件包目录reposync下载远程仓库中的全部软件包 四、选项参数 选项说明-c [config file], --config [config file]配置文件位置-q, --quiet静默执行-v, --verbose详尽执行--version显示 DNF 版本信息并退出--installroot [path]设置目标根目录--nodocs不要安装文档--noplugins禁用所有插件--enableplugin [plugin]启用指定名称的插件--disableplugin [plugin]禁用指定名称的插件--releasever RELEASEVER覆盖在配置文件和仓库文件中 $releasever 的值--setopt SETOPTS设置任意配置和仓库选项--skip-broken通过跳过软件包来解决依赖问题--allowerasing允许解决依赖关系时删除已安装软件包-b, --best在事务中尝试最佳软件包版本-C, --cacheonly完全从系统缓存运行,不升级缓存-R [minutes], --randomwait [minutes]最大命令等待时间-d [debug level], --debuglevel [debug level]调试输出级别--debugsolver转储详细解决结果至文件--showduplicates在 list/search 命令下,显示仓库里重复的条目-e ERRORLEVEL, --errorlevel ERRORLEVEL错误输出级别--obsoletes对 upgrade 启用 dnf 的过期处理逻辑,或对 info、list 和 repoquery显示软件包过期的功能--rpmverbosity [debug level name]rpm调试输出等级-y, --assumeyes全部问题自动应答为是--assumeno全部问题自动应答为否--enablerepo [repo]Enable additional repositories. List option. Supports globs, can be specified multiple times.--disablerepo [repo]Disable repositories. List option. Supports globs, can be specified multiple times.-x [package], --exclude [package], --excludepkgs [package]用全名或通配符排除软件包--disableexcludes [repo], --disableexcludepkgs [repo]禁用 excludepkgs--repofrompath [repo,path]指向附加仓库的标记和路径,可以指定多次--noautoremove禁用删除不再被使用的依赖软件包--nogpgcheckdisable gpg signature checking (if RPM policy allows)--color COLOR配置是否使用颜色--refresh在运行命令之前将元数据标记为过期--destdir DESTDIR, --downloaddir DESTDIR设置软件包要复制到的目录--downloadonly仅下载软件包--comment COMMENT为事务添加一个注释--bugfix在更新中包括与 bug 修复有关的软件包--enhancement在更新中包括与功能增强有关的软件包。--newpackage在更新中包括与新软件包有关的软件包--security在更新中包括与安全有关的软件包--advisory ADVISORY, --advisories ADVISORY在更新中包括修复指定公告所必须的软件包--bzs BUGZILLA在更新中包括修复给定 BZ 所必须的软件包--cves CVES在更新中包括修复给定 CVE 所必须的软件包--sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low}在更新中包括匹配给定安全等级的安全相关的软件包--forcearch ARCH强制使用一个架构安装包-h, --help,-?, --help显示命令帮助,如果后面跟着命令名称,则显示该命令的帮助信息,例如:dnf --help install 五、命令示例 (一)安装、升级和删除软件包 安装软件包

使用该命令,系统将会自动安装对应的软件及其所需的所有依赖

[root@htlwk0001host ~]# dnf install nano
安装一个软件包组

该命令用于安装一个软件包组。本例中,我们将用命令安装”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
升级软件包

该命令用于升级指定的软件包。

[root@htlwk0001host ~]# dnf update systemd
重新安装特定软件包
dnf reinstall nano
升级所有系统软件包

该命令用于升级系统中所有有可用升级的软件包。

[root@htlwk0001host ~]# dnf update 
[root@htlwk0001host ~]# dnf upgrade
删除软件包

删除系统中指定的软件包。

[root@htlwk0001host ~]# dnf remove nano
[root@htlwk0001host ~]# dnf erase nano
删除无用孤立的软件包

当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包。

[root@htlwk0001host ~]# dnf autoremove
删除缓存的无用软件包

在使用 DNF 的过程中,会因为各种原因在系统中残留各种过时的文件和未完成的编译工程。我们可以使用该命令来删除这些没用的垃圾文件。

[root@htlwk0001host ~]# dnf clean all
42 文件已删除
(二)查询和检验软件包 查看系统中可用的 DNF 软件库
[root@htlwk0001host ~]# dnf repolist
仓库标识                                                                                   仓库名称
AppStream                                                                                  CentOS-8 - AppStream
BaseOS                                                                                     CentOS-8 - Base
epel                                                                                       Extra Packages for Enterprise Linux 8 - x86_64
extras                                                                                     CentOS-8 - Extras
mysql-connectors-community                                                                 MySQL Connectors Community
mysql-tools-community                                                                      MySQL Tools Community
mysql57-community                                                                          MySQL 5.7 Community Server
查看所有的软件包组
dnf grouplist
查看系统中可用和不可用的所有的 DNF 软件库
root@htlwk0001host ~]# dnf repolist all
仓库标识                                                                                     仓库名称                                                                                                 状态
AppStream                                                                                    CentOS-8 - AppStream                                                                                     启用
AppStream-source                                                                             CentOS-8 - AppStream Sources                                                                             禁用
BaseOS                                                                                       CentOS-8 - Base                                                                                          启用
BaseOS-source                                                                                CentOS-8 - BaseOS Sources                                                                                禁用
PowerTools                                                                                   CentOS-8 - PowerTools                                                                                    禁用
base-debuginfo                                                                               CentOS-8 - Debuginfo                                                                                     禁用
c8-media-AppStream                                                                           CentOS-AppStream-8 - Media                                                                               禁用
c8-media-BaseOS                                                                              CentOS-BaseOS-8 - Media                                                                                  禁用
centosplus                                                                                   CentOS-8 - Plus                                                                                          禁用
centosplus-source                                                                            CentOS-8 - Plus Sources                                                                                  禁用
cr                                                                                           CentOS-8 - cr                                                                                            禁用
epel                                                                                         Extra Packages for Enterprise Linux 8 - x86_64                                                           启用
extras                                                                                       CentOS-8 - Extras                                                                                        启用
extras-source                                                                                CentOS-8 - Extras Sources                                                                                禁用
fasttrack                                                                                    CentOS-8 - fasttrack                                                                                     禁用
mysql-cluster-7.5-community                                                                  MySQL Cluster 7.5 Community                                                                              禁用
mysql-cluster-7.5-community-source                                                           MySQL Cluster 7.5 Community - Source                                                                     禁用
mysql-connectors-community                                                                   MySQL Connectors Community                                                                               启用
mysql-connectors-community-source                                                            MySQL Connectors Community - Source                                                                      禁用
mysql-tools-community                                                                        MySQL Tools Community                                                                                    启用
mysql-tools-community-source                                                                 MySQL Tools Community - Source                                                                           禁用
mysql-tools-preview                                                                          MySQL Tools Preview                                                                                      禁用
mysql-tools-preview-source                                                                   MySQL Tools Preview - Source                                                                             禁用
mysql55-community                                                                            MySQL 5.5 Community Server                                                                               禁用
mysql55-community-source                                                                     MySQL 5.5 Community Server - Source                                                                      禁用
mysql56-community                                                                            MySQL 5.6 Community Server                                                                               禁用
mysql56-community-source                                                                     MySQL 5.6 Community Server - Source                                                                      禁用
mysql57-community                                                                            MySQL 5.7 Community Server                                                                               启用
mysql57-community-source                                                                     MySQL 5.7 Community Server - Source                                                                      禁用
mysql80-community                                                                            MySQL 8.0 Community Server                                                                               禁用
mysql80-community-source                                                                     MySQL 8.0 Community Server - Source                                                                      禁用
列出所有 RPM 包

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

[root@htlwk0001host ~]# dnf list
列出所有安装了的 RPM 包
[root@htlwk0001host ~]# dnf list installed
列出所有可供安装的 RPM 包

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

[root@htlwk0001host ~]# dnf list available
搜索软件库中的 RPM 包

当你不知道你想要安装的软件的准确名称时,你可以用该命令来搜索软件包。你需要在”search”参数后面键入软件的部分名称来搜索。

[root@htlwk0001host ~]# dnf search fastest
上次元数据过期检查:2:07:02 前,执行于 2021年07月20日 星期二 14时43分02秒。
=========================================================================================== 概况 匹配:fastest ===========================================================================================
perl-Sort-Key.x86_64 : Fastest way to sort anything in Perl
查找某一文件的提供者

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

[root@htlwk0001host ~]# dnf provides /bin/bash
上次元数据过期检查:2:11:14 前,执行于 2021年07月20日 星期二 14时43分02秒。
bash-4.4.19-10.el8.x86_64 : The GNU Bourne Again shell
仓库        :@System
匹配来源:
提供    : /bin/bash

bash-4.4.19-14.el8.x86_64 : The GNU Bourne Again shell
仓库        :BaseOS
匹配来源:
提供    : /bin/bash

bash-4.4.20-1.el8_4.x86_64 : The GNU Bourne Again shell
仓库        :BaseOS
匹配来源:
提供    : /bin/bash
查看软件包详情

当你想在安装某一个软件包之前查看它的详细信息时,这条命令可以帮到你。

[root@htlwk0001host ~]# dnf info nano
检查系统软件包的更新

该命令用于检查系统中所有软件包的更新

[root@htlwk0001host ~]# dnf check-update
(三)执行其它功能 查看安装在您系统中的 DNF 包管理器的版本
[root@htlwk0001host ~]# dnf --version
4.2.17
  已安装: dnf-0:4.2.17-6.el8.noarch 在 2020年07月17日 星期五 01时54分04秒
  构建    :CentOS Buildsys  在 2020年04月24日 星期五 19时58分19秒

  已安装: rpm-0:4.14.2-37.el8.x86_64 在 2020年07月17日 星期五 01时53分33秒
  构建    :CentOS Buildsys  在 2020年04月24日 星期五 03时17分18秒
获取有关某条命令的使用帮助

该命令用于获取有关某条命令的使用帮助(包括可用于该命令的参数和该命令的用途说明),本例中我们将使用命令获取有关命令”clean”的使用帮助。

dnf help clean
查看所有的 DNF 命令及其用途
dnf help
查看 DNF 命令的执行历史

您可以使用该命令来查看您系统上 DNF 命令的执行历史。通过这个手段您可以知道在自您使用 DNF 开始有什么软件被安装和卸载。

dnf history
回滚某个特定软件的版本

该命令用于降低特定软件包的版本(如果可能的话),本例中,我们将使用命令降低”acpid”这个软件包的版本。

dnf downgrade acpid
关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0437s