如何使用 DNF 管理基于 RPM 的 Linux 发行版上的软件包
了解如何安装和删除软件包是您应该习惯的一项基本任务。以下是如何使用 DNF 在 Linux 上管理软件包。
Linux 操作系统最吸引人的功能之一是从安全的远程存储库安装或自动安装软件包是多么容易。
本指南将引导您了解如何使用 DNF(基于 RPM 的 Linux 发行版的下一代软件包管理器)在基于 RPM 的 Linux 发行版(例如 Fedora 和 Red Hat Enterprise Linux (RHEL))上安装和管理软件包。
什么是DNF?
DNF 是 YUM(Yellowdog Updater Modified)的后继程序,是 Fedora 和 RHEL 上的默认包管理器。 DNF 这个名字是 Dandified YUM 的缩写。
DNF 的主要目的是简化服务器和桌面上软件包的安装、查询和管理。此外,就像 Linux 上其他主流包管理器一样,DNF 在安装过程中解决了所有软件包依赖关系。
DNF 还保持与 YUM 的向后兼容性,以便您的旧脚本可以正常运行。事实上,当你在新的 Linux 发行版上运行 yum 命令时,它实际上是在后台使用 DNF。您可以通过运行以下命令来验证这一点:
ls -l /usr/bin/yum
正如您在输出中注意到的,yum 命令只是到 dnf 的符号链接。
使用DNF搜索软件包
管理包的一个重要部分是能够在本地和远程存储库上查询或搜索您感兴趣的包。您可以根据包名、包内容或关键字等搜索包。
例如,如果您想搜索一些可以安装的网络浏览器,那么您可以使用关键字“浏览器”开始常规搜索。
dnf search browser
输出是软件包名称或说明中包含“浏览器”一词的所有软件包的列表。
如果您想获取某个软件包的更多信息,例如 Firefox 浏览器,您可以使用 info 子命令,如下所示:
dnf info firefox
输出为您提供有关包的更多详细信息,例如体系结构、包大小、版本号、许可证等。
您还可以使用 list 方法列出已配置的存储库中可安装的所有软件包。我们通过管道传送 less 命令来一次一屏地列出软件包。
dnf list available | less
使用F键向前滚动,使用B键向后滚动。您还可以通过按/然后输入关键字来搜索关键字的输出。按Q退出命令输出。
使用以下命令查看PC上所有已安装的软件包:
dnf list installed
安装软件包
使用 DNF 安装软件包非常简单。但是,您需要作为 root 或 sudo 用户获得提升的权限。例如,要安装 Firefox 浏览器,只需运行以下命令,然后在出现的提示中按 Y 表示同意条款:
sudo dnf install firefox
如前所述,dnf 命令负责安装包的所有依赖项。要查看作为 Firefox 安装的一部分安装的所有依赖项,请使用 deplist 子命令,后跟包名称。
dnf deplist firefox
卸载软件包
管理软件时,删除软件包也是一项同样重要的工作。删除或卸载软件包的最简单方法之一是使用remove方法。
sudo dnf remove firefox
删除软件包的另一种方法是通过 history 子命令。 DNF 会记录所有涉及安装或删除软件包的交易。要查看之前的DNF交易,可以运行以下命令:
dnf history
输出以表格形式列出先前的操作或事务。在本例中,输出显示我们之前已经安装了 vim 和 chromium。
使用history子命令,您可以撤消或删除任何以前的事务。例如,要删除 vim 包,只需运行带有 undo 选项的 history 命令,后跟事务 ID,然后在提示继续时按 Y。
sudo dnf history undo 3
作为一个好的做法,您应该在撤消事务之前获取有关事务的更多详细信息,以避免副作用。您可以使用以下命令查看交易的详细信息:
sudo dnf history info 3
请记住将 3 替换为您感兴趣的相应交易 ID。
删除未使用的依赖项
Linux PC 上占用磁盘空间的因素之一是系统不再需要的软件包和依赖项。
要删除此类依赖项,请运行以下命令:
sudo dnf autoremove
此外,DNF 还允许您删除随安装包一起下载的数据。
sudo dnf clean packages
您还可以通过运行以下命令来清理软件包缓存和已安装软件包中的其他元数据:
sudo dnf clean metadata
重新安装软件包
有时,您可能只需要安装软件包的特定组件。例如,如果您不小心删除了 firefox 的某些软件包,您可以通过运行以下命令重新安装它们:
sudo dnf reinstall firefox
使用DNF更新包
更新软件是维护强大且安全的系统的最佳方法之一,因为新软件包含最新的安全补丁和错误修复。
要从远程存储库获取最新的软件包更新,您可以使用 check-update 子命令,如下所示:
sudo dnf check-update
获取更新后,您可以使用更新将它们应用到所有已安装的软件包。
sudo dnf update
输出显示 DNF 将更新的包总数。
您还可以使用以下命令更新特定的软件包,例如 firefox:
sudo dnf update firefox
替代和现代包管理
本指南介绍了如何使用 DNF 命令在基于 RPM 的 Linux 发行版(例如 Fedora 和 Red Hat Enterprise Linux (RHEL))上管理软件包。您还可以在 Fedora 上使用 YUM 和 RPM 包管理器。
在 Linux 上分发软件包的另一种现代方法是通过 Flatpak,该解决方案允许您在多个受支持的 Linux 发行版上创建和分发软件包。