rpm ファイルに署名するときにこのエラーが発生します。ご覧のとおり、あまり情報がなく、Google で検索しても何も出てこないようです。困惑しています。
原因が何か分かる人はいますか? どこかに何らかの一時ファイルを作成しようとしているのではないかと思います。
$: 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 = リード(96)+シグ(180)+パッド(4)+データ(51547) D: 実寸: 51827 D: GPG 署名サイズ: 72 D: 72バイトのGPG署名を取得しました D: GPG 署名サイズ: 72 D: 72バイトのGPG署名を取得しました エラー: 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 が保存されていた場所への書き込み権限がなかったことが判明しました。
うーん。