随着 Fedora 39 正式发布,DNF5 在 Linux 社区引发的讨论还真是爆了。人们纷纷就其特性和性能表现展开讨论,更是将其与当前的 DNF 进行了各种比较。取决于 Fedora 工程团队的努力以及 FESCo 的决策,DNF5 有望在 Fedora 41 发布后,成为系统默认的软件包管理器。
如果你是 Linux 用户,最近可能听说过 DNF5 这个术语。接下来,我们将为你介绍 DNF5 的特点,并与当前的 DNF 进行比较,同时提供命令行使用示例。
是什么 DNF5
全新的 DNF5 是 Fedora 团队与 Red Hat 团队共同努力的成果,目标是提供一个经过大幅改进的软件包管理器版本,以带来卓越的用户体验和性能提升。
DNF5 自 2020 年首度在 Fedora-Devel 列表上露面时,便引发了关注。预计在 Fedora 41 发布后,DNF、YUM、Libdnf 和 DNF-AUTOMATIC 等旧版工具将被 DNF5 及全新的 Libdnf5 库所取代。
DNF5 的独特之处在于,它不再主要采用 Python 编写,而是采用 C/C++ 从零开始构建,这样做旨在适应更小的系统,提供更快的性能,并推出了一个全新的守护进程 dnf5daemon,作为桌面环境(如 GNOME 和 KDE)中的 PackageKit 库的替代方案。
DNF 存在的问题,以及 DNF5 的解决方案
你可能会好奇,为什么这次升级如此重要呢?简单来说,由于当前的 DNF 在相当大程度上采用 Python 编写,随着新功能的增加,导致其性能随着时间推移逐渐下滑。
解决这个问题的一种方式是引入了 MicroDNF,这个用 C 编写的 DNF 极简版本,同时保留了 DNF 的所有功能。这代表着 Fedora 在提升用户体验和默认包管理器性能方面迈出的第一步,最终推动了 DNF5 的诞生。
DNF5 的特性或优势
DNF5 带来了许多新特性,亮点包括:
- 全新编写: DNF5 是一个功能齐全的包管理器,完全由 C/C++ 重新编写,摆脱了对 Python 的依赖。
- 更小的安装体积: DNF5 的安装大小仅为 114MB,相比之下,当前 DNF 的安装大小为 165MB。
- 元数据下载优化: 优化了元数据的下载,包括可选的文件列表下载,可以通过命令和配置文件进行灵活配置。
- 功能融合: DNF5 将 DNF 和 MicroDNF 整合,减少了 Fedora 中的软件管理工具数量。
- 命令链接: 命令(如 DNF、YUM 和 MICRODNF)现在将链接到 DNF5。
- 一致的用户体验: DNF5 确保在不同环境下(包括工作站、服务器和容器)提供一致的用户体验。
- PackageKit 替代方案: 引入了 RPM 的 PackageKit 替代方案,同时支持 Modularity 和 Comps 组。
- Libdnf5 插件: 新引入了用于 DNF5 和 Dnf5Daemon 的 Libdnf5 插件,采用了 C++ 和 Python 编写。
- 共享配置: DNF5 确保共享配置,消除了在 DNF4 中存在的 PackageKit 和 MicroDNF 不一致的问题。
- 性能改进: 在加载存储库、咨询操作、RPM 查询以及 DNF5 与守护程序之间实现了性能改进。
- 降低维护成本: 共享插件和去除功能冗余有助于长期降低维护成本。
- 模块性集成: 完全将模块性集成到 LIBDNF5 工作流中,解决了与 PackageKit 等其他工具兼容性的限制。
- 数据分离: DNF5 将系统状态与历史数据库以及
/etc/dnf/module.d
分离,提供了改进的数据完整性等好处。 - Bash 自动完成: 在 Bash 自动完成方面表现出色,比当前 DNF 更为优秀。
DNF5 对用户体验的影响
- 目标用户群体: 这些变化主要影响 DNF 的命令行用户,同时也充分考虑了之前功能对用户体验的重要性。
- 符号链接更新: 符号链接
/usr/bin/dnf
将更新为指向/usr/bin/dnf5
。 - 输出和语法调整: 在交易摘要和输出中会有一些变动,用户可能需要适应 DNF5 引入的新语法和选项。
- 升级包版本信息: 与 DNF4 不同,DNF5 的交易表将包含升级包版本的相关信息。
- 软件淘汰: 提案中提到,由于 DNF5 将为 DNF 和 YUM 提供符号链接,因此需淘汰 DNF 和 YUM。但原始的 dnf-3 二进制文件会被保留在系统上,以确保需要时的向后兼容性。
在 Fedora 中安装、启用和测试 DNF5
在安装、启用和测试 DNF5 之前,请将你的 Fedora 系统升级到最新版本,然后按以下步骤操作:
1在「终端」中运行以下命令启用 DNF5-unstable Copr 仓库。
sudo dnf copr enable rpmsoftwaremanagement/dnf5-unstable
启用 DNF5-unstable Copr 仓库
2运行以下命令安装dnf5
和dnf5-plugins
。
sudo dnf install dnf5 dnf5-plugins
在 Fedora 中安装 dnf5 和 dnf5-plugins
3运行以下命令验证 DNF5 是否成功安装。
sudo which dnf5
# 或者
sudo dnf5 --version
验证 DNF5 安装
现在,就可以通过dnf5
命令使用 DNF5 了。
DNF5 命令行示例
在 DNF5 中,大多数常用选项仍然保留,如果你很熟悉当前 DNF 命令行的使用方式,升级到使用 DNF5 简直轻而易举。
DNF5 和 DNF 不会共享模块状态和历史记录;强烈不推荐同时使用 DNF 和 DNF5 来管理系统中的软件。
DNF5 命令行参数
下面列举了一些 DNF5 中的常用命令,并附带它们的简要说明:
# 卸载软件包
dnf remove [PACKAGE-NAME]
dnf5 remove [PACKAGE-NAME]# 将已安装的软件包与 Fedora 发行版仓库中的最新版本同步
dnf distro-sync [PACKAGE-NAME]
dnf5 distro-sync [PACKAGE-NAME]
# 从 DNF 软件包仓库中查询软件包信息
dnf repoquery [PACKAGE-NAME]
dnf5 repoquery [PACKAGE-NAME]
# 显示软件包信息
dnf list [PACKAGE-NAME]
dnf5 list [PACKAGE-NAME]
# 检索软件包详细信息
dnf info [PACKAGE-NAME]
dnf5 info [PACKAGE-NAME]
# 重新生成 DNF 软件包管理器元数据缓存
dnf makecache
dnf5 makecache
# 显示包含软件包数量信息的仓库列表
dnf repolist
dnf5 repolist
# 显示系统配置的仓库信息
dnf repoinfo
dnf5 repoinfo
以上就是全部内容;未在上文列出的其他命令行示例可以自行测试。