第 1 章 RPM 简介
RPM Package Manager (RPM)是一个运行在 Red Hat Enterprise Linux (RHEL)、CentOS 和 Fedora 上的软件包管理系统。您可以使用 RPM 为任何这些操作系统所创建的软件进行分发、管理和更新。
与在传统存档文件中分发软件相比,RPM 软件包管理系统有以下优点:
- RPM 以可独立安装、更新或删除软件包的形式管理软件,从而更轻松地维护操作系统。
- RPM 简化了软件的分发,因为 RPM 软件包是独立的二进制文件,类似于压缩的存档。这些软件包是为特定的操作系统和硬件架构而构建的。RPM 包含诸如这样的文件,如在软件包安装时放到文件系统上适当路径下的已编译的可执行文件和库。
使用 RPM,您可以执行以下任务:
- 安装、升级和删除打包的软件。
- 查询关于打包的软件的详细信息。
- 验证打包的软件的完整性。
- 从软件源构建您自己的软件包,并完成构建说明。
- 使用 GNU Privacy Guard (GPG)工具对您的软件包进行数字签名。
- 在 YUM 存储库中发布您的软件包。
在 Red Hat Enterprise Linux 中,RPM 完全集成到更高级别的软件包管理软件中,如 YUM 或 PackageKit。虽然 RPM 提供了自己的命令行界面,但大多数用户只需要通过这个软件与 RPM 进行交互。但是,在构建 RPM 软件包时,您必须使用 RPM 工具,如 rpmbuild (8)
。
1.1. RPM 软件包
RPM 软件包由用于安装和删除这些文件的文件和元数据的存档组成。具体来说,RPM 软件包包含以下部分:
- GPG 签名
- GPG 签名用于验证软件包的完整性。
- 标头(软件包元数据)
- RPM 软件包管理器使用此元数据来确定软件包依赖项、安装文件的位置及其他信息。
- payload
-
有效负载是一个
cpio
归档,其中包含要安装到系统的文件。
RPM 软件包有两种类型。这两种类型都共享文件格式和工具,但内容不同,并实现不同的目的:
源 RPM(SRPM)
SRPM 包含源代码和
spec
文件,它描述了如何将源代码构建为二进制 RPM。另外,SRPM 可以包含源代码的补丁。- 二进制 RPM
- 一个二进制 RPM 包含了根据源代码和补丁构建的二进制文件。