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 | strace -p `ps --no-headers -fC rpmsign | strace -p `ps --no-headers -fC rpmsign | awk '{print $2}'` -e trace=開啟,關閉

Strace 表明,在 tmp 目錄(本例中為 /var/tmp)內完成所有工作後,它會嘗試在與 rpm 相同的目錄中製作 rpm 的更改版本,然後(我假設)將其移動到位。rpm 是它所指的「臨時」。

畢竟,事實證明該用戶在簽署時沒有對 rpm 所在位置的寫入權限。

啊。

相關內容