Azure Linux 上的包管理概述

Azure Linux 使用 DNF5 作为包管理器,并将软件作为 RPM 包提供。 本文介绍了 Azure Linux 的打包方式、DNF5 的新增功能,以及当路径或工具仍沿用 YUM 时代名称时应到哪里查找。

Note

Azure Linux 4.0 现在位于 preview 中,严格限制为评估和测试目的。 它不适合生产用途。

DNF5

DNF5 是 DNF 的最新主要版本,该包管理器由上游 RPM 软件管理社区维护。 与 DNF4 相比,DNF5 提供:

  • 更快地解决依赖项问题。
  • 减少了内存使用量。
  • 改进了内部体系结构。
  • 与现有 YUM 存储库配置完全向后兼容。

命令行图面有意接近 yumdnf 4,因此现有脚本和 CI 管道通常无需更改即可工作。 Azure Linux 上的 dnfyum 命令由 DNF5 提供。

RPM 包

Azure Linux 上的软件以 RPM 包的形式提供。 每个 .rpm 文件包含:

  • 二进制文件、库、脚本和其他有效负载文件。
  • 将配置文件标记为 %config,以便它们在升级后仍能保留。
  • 元数据:名称、版本、发布、体系结构、依赖项、文件列表、签名和变更日志。

DNF 解析依赖项,从配置的存储库提取所需的 .rpm 文件,验证其签名,并将其交给 rpm 库进行安装或升级。 可以直接使用 rpm 对已安装的软件包执行操作(例如,rpm -qarpm -qf <path>rpm -V <pkg>),但在安装和升级时应使用 DNF,以确保依赖关系解析保持正确。

YUM、DNF 和 DNF5

基于 RPM 的发行版已经历了三代前端工具:

YUM → DNF → DNF5

每一代都保持磁盘存储库格式兼容,因此你仍可在当前 Azure Linux 系统上看到路径和名称,如 /etc/yum.repos.d/yum.conf。 它们是 DNF5 中的别名,不是单独的工具,可以在脚本中使用任一名称。

有关 DNF5 和 RPM 生态系统的详细信息,请参阅以下资源: