1. 前言
本文主要讲解yum
的后继者dnf
最常用的27种使用案例。
DNF又名Dandified YUM,是基于RPM的下一代软件包管理器。它首先在Fedora 18中引入,并在Fedora 22版本中取代了yum
命令。
RHEL和CentOS 8开始,默认采用dnf
工具管理软件包。
DNF
的目标是改善YUM
的缺陷,在性能、内存使用、解析依赖关系、速度和许多其他方面都有提升。DNF使用RPM
、libsolv
和hawkey
库进行软件包管理。基于红帽Linux体系的旧发行版默认采用yum
管理软件,dnf
工具需要自行安装。
dnf
工具集主要是用Python编写的,并在GPL v2许可证下发布。
2. 在旧的发行版中安装dnf
工具集
RHEL/CentOS 7的默认软件仓库并不包含dnf
工具集。而Fedora操作系统,从Fedora 22版本开始支持dnf
。
要在RHEL/CentOS系统上安装DNF
,首先需要安装并启用epel-release
存储库。
yum install epel-release -y
然后开始安装dnf工具
yum install dnf
3. 最常用的27个dnf命令行功能
成功安装dnf
之后,我们就要学习dnf
命令最常用的27种用法了,这些使用案例将帮助您轻松有效地管理基于RPM格式的软件包。
3.1 检查DNF版本
使用以下命令行检查DNF版本
dnf --version
3.2 列出可用的dnf
软件仓库
执行以下命令打印可用的dnf
软件仓库
dnf repolist
3.3 列出所有的dnf
软件仓库
执行以下命令列出启用和不启用的软件仓库:
dnf repolist all
3.4 列出dnf
软件仓库中所有软件和通过dnf
命令已安装的软件包
执行以下命令列出dnf
软件仓库中所有软件和通过dnf
命令已安装的软件包
dnf list
3.5 列出通过dnf
命令已经安装的软件包
执行以下命令查询通过dnf
命令安装的软件包:
dnf list installed
3.6 列出所有有效的软件包
类似地,以下命令将列出所有已启用的软件仓库中可安装的包。
dnf list available
3.7 使用dnf
命令搜索软件包
使用以下命令搜索软件包,假设我现在需要搜索nano
相关的软件包信息。
3.8 查找文件由哪个软件包提供
查看哪个软件包提供了指定的文件,比如
dnf provides /bin/bash
3.9 通过dnf
命令查看软件包的详细信息
假设你在安装软件之前,想要查看某个软件包的详细信息。
dnf info nano
3.10 通过dnf
安装软件包
假设我现在想安装一个名为nano
的软件包,执行以下命令开始自动安装和解决依赖关系。
dnf install nano
3.11 通过dnf
升级软件
执行以下命令升级软件,假设软件名为systemd
:
dnf update systemd
3.12 检查更新
执行以下命令,检查系统更新:
dnf check-update
3.13 升级所有的软件包
升级所有可升级的软件包:
dnf update
或者
dnf upgrade
3.14 删除/卸载软件
删除或卸载软件,比如软件名是nano
dnf remove nano
或者
dnf erase nano
3.15 移除孤立软件包
如果没有被其他应用程序依赖,那些当初为满足依赖而安装的包现在可能已经没有任何作用。要删除这些孤立软件包,请执行以下命令。
dnf autoremove
3.16 使用dnf
清除缓存中的软件包
很多时候,我们会遇到过期的缓存数据,这会导致在执行dnf
时出现错误。我们可以简单地通过dnf
命令来清除所有过期的缓存数据,包括过期的安装包和元信息。
dnf clean all
3.17 获取指定的dnf
命令帮助
如果你想获取dnf
某个指定动作的使用帮助,比如clean
,可以执行以下命令获取相关信息:
dnf help clean
3.18 列出dnf
命令和选项
要列出所有可用的dnf
命令和选项的帮助,请执行如下命令:
dnf help
3.19 查看dnf历史命令
你可以调用dnf history
命令来查看已经执行的dnf
命令。通过这种方式,您可以知道软件的安装或卸载的先后顺序。
dnf history
3.20 列出所有的组包名称
dnf grouplist
命令将打印所有可用的或已安装的软件包,如果没有指定特定组名,它将列出所有已知的组。
dnf grouplist
3.21 使用dnf
安装一个组包
安装一个组包含的所有软件包,比如教育套件Educational Software
:
dnf groupinstall 'Educational Software'
3.22 升级一个组的软件包
通过dnf
命令,可以升级整个组包含的软件包,比如升级组的名称为Educational Software
:
dnf groupupdate 'Educational Software'
3.23 移除一个组的所有软件包
通过dnf
移除某个组的所有软件包,比如组名为:Educational Software
:
dnf groupremove 'Educational Software'
3.24 使用dnf
从某个特定软件仓库中安装软件包
比如我要指定从epel
仓库中安装软件包phpmyadmin
:
dnf --enablerepo=epel install phpmyadmin
2.25 同步软件包到最新最稳定的版本
如果你想把指定软件从任何仓库中同步到最新最稳定的版本,执行以下命令:
dnf distro-sync
如果不指定软件名,即把所有已安装的软件同步到最新最稳定的版本。
2.26 重装安装软件
比如你想重新安装nano,执行以下命令:
dnf reinstall nano
2.27 降级软件
如果你想把某个软件降级到更低的版本,比如acpid
,执行以下命令:
dnf downgrade acpid
4. 结论
DNF
是基于红帽体系的Linux操作系统中,在于取替yum
命令的最新默认软件管理工具。它提供更为灵活的功能。如果你对dnf
命令还不熟悉的话,尽快更新自己的知识吧,yum
命令已过时了。
评论前必须登录!
注册