2

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

 6 months ago
source link: https://www.sysgeek.cn/fedora-dnf5/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Fedora

随着 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 仓库
启用 DNF5-unstable Copr 仓库

2运行以下命令安装dnf5dnf5-plugins

复制
sudo dnf install dnf5 dnf5-plugins
在 Fedora 中安装 dnf5 和 dnf5-plugins
在 Fedora 中安装 dnf5 和 dnf5-plugins

3运行以下命令验证 DNF5 是否成功安装。

复制
sudo which dnf5
# 或者
sudo dnf5 --version
验证 DNF5 安装
验证 DNF5 安装

现在,就可以通过dnf5命令使用 DNF5 了。

DNF5 命令行示例

在 DNF5 中,大多数常用选项仍然保留,如果你很熟悉当前 DNF 命令行的使用方式,升级到使用 DNF5 简直轻而易举。

DNF5 和 DNF 不会共享模块状态和历史记录;强烈不推荐同时使用 DNF 和 DNF5 来管理系统中的软件。

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK