第 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 --gen-key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查生成的密钥对:
gpg --list-keys
# gpg --list-keys
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导出公钥:
gpg --export -a '<Key_name>' > RPM-GPG-KEY-pmanager
# gpg --export -a '<Key_name>' > RPM-GPG-KEY-pmanager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <Key_name> 替换为您选择的实际密钥名称。
将导出的公钥导入到 RPM 数据库中:
rpm --import RPM-GPG-KEY-pmanager
# rpm --import RPM-GPG-KEY-pmanager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.2. 配置 RPM 为软件包签名 复制链接链接已复制到粘贴板!
要能够签署 RPM 软件包,您需要指定 %_gpg_name
RPM 宏。
以下流程描述了如何配置 RPM 以签名软件包。
流程
在
$HOME/.rpmmacros
文件中定义%_gpg_name
宏,如下所示:%_gpg_name Key ID
%_gpg_name Key ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您要用来签署软件包的 GNU Privacy Guard (GPG)密钥 ID 替换 Key ID。有效的 GPG 密钥 ID 值是创建密钥的用户的完整名称或电子邮件地址。
5.1.3. 在 RPM 软件包中添加签名 复制链接链接已复制到粘贴板!
最常见的情况是在没有签名的情况下构建软件包。签名仅在软件包发布前添加。
要在 RPM 软件包中添加签名,请使用 rpm-sign
软件包提供的 --addsign
选项。
流程
在软件包中添加签名:
rpm --addsign package-name.rpm
$ rpm --addsign package-name.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您要签名的 RPM 软件包的名称替换 package-name。
注意您必须输入密码来解锁签名的 secret 密钥。