第 5 章 高级主题
本节涵盖超出入门教程范围但对真实 RPM 打包很有用的主题。
5.1. 签名 RPM 软件包
您可以签署 RPM 软件包,以确保没有第三方可以更改其内容。要添加额外的安全层,请在下载软件包时使用 HTTPS 协议。
您可以使用 rpm-sign
软件包提供的 --addsign
选项为软件包签名。
先决条件
- 您已创建了 GNU Privacy Guard (GPG)密钥,如 创建 GPG 密钥 中所述。
5.1.1. 创建 GPG 密钥
使用以下步骤创建签名软件包所需的 GNU Privacy Guard (GPG)密钥。
流程
生成 GPG 密钥对:
# gpg --gen-key
检查生成的密钥对:
# gpg --list-keys
导出公钥:
# gpg --export -a '<Key_name>' > RPM-GPG-KEY-pmanager
将 <Key_name> 替换为您选择的实际密钥名称。
将导出的公钥导入到 RPM 数据库中:
# rpm --import RPM-GPG-KEY-pmanager
5.1.2. 配置 RPM 为软件包签名
要能够签署 RPM 软件包,您需要指定 %_gpg_name
RPM 宏。
以下流程描述了如何配置 RPM 以签名软件包。
流程
在
$HOME/.rpmmacros
文件中定义%_gpg_name
宏,如下所示:%_gpg_name Key ID
使用您要用来签署软件包的 GNU Privacy Guard (GPG)密钥 ID 替换 Key ID。有效的 GPG 密钥 ID 值是创建密钥的用户的完整名称或电子邮件地址。
5.1.3. 在 RPM 软件包中添加签名
最常见的情况是在没有签名的情况下构建软件包。签名仅在软件包发布前添加。
要在 RPM 软件包中添加签名,请使用 rpm-sign
软件包提供的 --addsign
选项。
流程
在软件包中添加签名:
$ rpm --addsign package-name.rpm
使用您要签名的 RPM 软件包的名称替换 package-name。
注意您必须输入密码来解锁签名的 secret 密钥。