rpm 签名错误 rpmMkTemp 失败

rpm 签名错误 rpmMkTemp 失败

我在签署 rpm 文件时遇到了这个错误。如您所见,我没有太多线索,谷歌似乎一无所获。我被难住了!

有人知道是什么原因造成的吗?我猜它正在尝试在某处创建某种临时文件。

$:rpm -D“_gpg_name rpmbuilder” --addsign 输出/sllop-0.0.6-1.x86_64.rpm --verbose --debug
输入密码:
密码短语很好。
输出/sllop-0.0.6-1.x86_64.rpm:
D:预期大小:51827 = lead(96)+sigs(180)+pad(4)+data(51547)
D:实际尺寸:51827
D:GPG 签名大小:72
D: 获得 72 字节的 GPG sig
D:GPG 签名大小:72
D: 获得 72 字节的 GPG sig
错误:rpmMkTemp 失败

答案1

自己回答这个问题以防其他人对此感到困惑。

这个错误信息有点误导人。它确实是权限问题(正如预期的那样),但不是在与 rpm 变量相关的任何 tmp 目录中。

使用 strace

strace -p `ps --no-headers -fC rpmsign | awk '{print $2}'` -e trace=open,close

Strace 显示,在 tmp 目录(在本例中为 /var/tmp)完成所有工作之后,它会尝试在与 rpm 相同的目录中创建 rpm 的更改版本,然后(我假设)将其移动到位。rpm 是其所指的‘临时’。

因此,经过所有这些,事实证明该用户在签名时没有对 rpm 所在位置的写权限。

啊。

相关内容