如何在 rpm 卸载期间删除导入的密钥

如何在 rpm 卸载期间删除导入的密钥

我正在创建一个 RPM 包(我们称之为 Foo),其中包含一个将用于签署其他 RPM 的 gpg 密钥。在 Foo 的安装后脚本中,我执行“rpm --import [keyfile]”将密钥导入 RPM 系统。这很有效。

为了清理自己的工作,我想在卸载 Foo 时撤消此导入。我从其他论坛看到,撤消导入的一种方法是执行“rpm -e gpg-pubkey-[keyid]”。但是,当我尝试在 Foo 的卸载后脚本中执行此操作时,RPM 卸载会挂起,因为用于删除密钥的 rpm 命令无法获取事务锁(因为它已用于删除 Foo)。

那么...当原始 Foo RPM 包被删除时,有没有办法可以干净地删除该 gpg 密钥?

答案1

是的,事务锁将阻止 rpm -e。

您可以在 %preun 中重命名锁(位于 /var/lib/rpm 中),然后删除 gpg-pubkey,然后将锁重命名回原位。重命名的优点是 KISS 和权宜之计,并且会“起作用”。

相关内容