Azure Linux 使用 DNF5 作为包管理器,并将软件作为 RPM 包提供。 本文介绍了 Azure Linux 的打包方式、DNF5 的新增功能,以及当路径或工具仍沿用 YUM 时代名称时应到哪里查找。
Note
Azure Linux 4.0 现在位于 preview 中,严格限制为评估和测试目的。 它不适合生产用途。
DNF5
DNF5 是 DNF 的最新主要版本,该包管理器由上游 RPM 软件管理社区维护。 与 DNF4 相比,DNF5 提供:
- 更快地解决依赖项问题。
- 减少了内存使用量。
- 改进了内部体系结构。
- 与现有 YUM 存储库配置完全向后兼容。
命令行图面有意接近 yum 和 dnf 4,因此现有脚本和 CI 管道通常无需更改即可工作。 Azure Linux 上的 dnf 和 yum 命令由 DNF5 提供。
RPM 包
Azure Linux 上的软件以 RPM 包的形式提供。 每个 .rpm 文件包含:
- 二进制文件、库、脚本和其他有效负载文件。
- 将配置文件标记为
%config,以便它们在升级后仍能保留。 - 元数据:名称、版本、发布、体系结构、依赖项、文件列表、签名和变更日志。
DNF 解析依赖项,从配置的存储库提取所需的 .rpm 文件,验证其签名,并将其交给 rpm 库进行安装或升级。 可以直接使用 rpm 对已安装的软件包执行操作(例如,rpm -qa、rpm -qf <path>、rpm -V <pkg>),但在安装和升级时应使用 DNF,以确保依赖关系解析保持正确。
YUM、DNF 和 DNF5
基于 RPM 的发行版已经历了三代前端工具:
YUM → DNF → DNF5
每一代都保持磁盘存储库格式兼容,因此你仍可在当前 Azure Linux 系统上看到路径和名称,如 /etc/yum.repos.d/ 和 yum.conf。 它们是 DNF5 中的别名,不是单独的工具,可以在脚本中使用任一名称。
相关内容
有关 DNF5 和 RPM 生态系统的详细信息,请参阅以下资源:
- DNF5 文档:DNF5 包管理器的官方用户和参考文档。
- GitHub 上的 RPM 软件管理:维护 DNF、RPM 和相关工具的上游组织。