Linux命令之 DNF

您所在的位置:网站首页 dnf工具套 Linux命令之 DNF

Linux命令之 DNF

2024-06-26 17:13| 来源: 网络整理| 查看: 265

文章目录 一、命令介绍二、安装 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。

为了安装 DNF ,您必须先安装并启用 epel-release 依赖。在系统中执行以下命令: [root@htlwk0001host ~]# yum install epel-release 接着在系统中执行以下命令: [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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3