我正在使用rpm版本4.4.2.3-18.el5和gpg版本1.4-2的CentOS 5.4主机我使用命令签署了rpm
> rpm --define '_signature gpg' --define '_gpg_path /path/to/keys' --define '_gpg_name mygpgname' -K myrpm.rpm
Run Code Online (Sandbox Code Playgroud)
命令成功,重复该命令会发出一条警告消息,表明rpm已经使用密钥签名.
但是,当我尝试使用rpm -K验证签名时,它返回NOT OK(MISSING_KEYS)结果.
> rpm -K myrpm.rpm
> GNUPGHOME=/path/to/keys rpm --define '_signature gpg' --define '_gnupghome /path/to/keys' --define '_gpg_name mygpgname' -K myrpm.rpm
myrpm.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#12345678)
Run Code Online (Sandbox Code Playgroud)
我假设我正在以某种方式设置错误的路径.我也尝试过将GPGPATH =/path /设置为/ keys而没有运气.
有没有人有任何建议如何让rpm -K找到丢失的密钥?
您是否使用该rpm --import <key>命令导入了公共GPG密钥?
如果您不想将GPG密钥存储在默认的RPM配置数据库中,则需要在命令中提供_gpg_path定义.请注意,最后一个命令缺少_gpg_path,尽管它几乎包含了您可能需要的所有其他gpg*定义.
就个人而言,我在$(HOME)/.rpmmacros文件中设置了这样的定义,以避免在命令行上多次输入这些内容.