RPM 包管理全解析
1. RPM 包安装与签名验证
在安装 RPM 包时,可能会遇到类似如下的警告信息:
warning: zlib–devel–1.2.3–3.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
这意味着包已安装到系统中,但 rpm
无法验证该包。原因是系统中没有该包的公钥,同时也表明包的签名使用了 DSA 加密算法。当把 zlib–devel
包的签名放入系统后,此警告信息会消失。
注意 :CentOS 的 RPM 包位于安装介质的 CentOS 目录下,可切换到该目录并按后续讨论输入 rpm
命令来运行示例。
1.1 签名包机制
包维护者在分发 RPM 包前可对其进行签名。签名时会生成一个唯一的 ID 号,即包签名, rpm
命令会用它来验证包是否来自原始所有者。
签名包需使用遵循 OpenPGP 标准(RFC2440)的工具,如 Gnu Privacy Guard(GnuPG),它可创建用于签署 RPM 包的密钥。维护者使用 GnuPG 创建一个私钥和一个公钥,并存储在密钥环中。私钥包含敏感信息,如用于加密数据的密码短语,不会被分发,主要用于在发送数据前进行加密,在 RPM 中可用于签署包。公钥会通过 HTTP 或 FTP 分发,用户可下载并使用它来验证维护者的 RPM