DNF5 重磅登场,Fedora 用户必知的软件管理革新

2023年 11月 27日 118.3k 0

随着 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 重磅登场,Fedora 用户必知的软件管理革新-1启用 DNF5-unstable Copr 仓库

2运行以下命令安装dnf5dnf5-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 重磅登场,Fedora 用户必知的软件管理革新-2DNF5 命令行参数

下面列举了一些 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

以上就是全部内容;未在上文列出的其他命令行示例可以自行测试。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论