Я сталкиваюсь с этой ошибкой при подписании файла RPM. У меня не так много информации, как вы видите, и Google, похоже, ничего не дал. Я в тупике!
Кто-нибудь знает, в чем причина? Я предполагаю, что он пытается создать какой-то временный файл... где-то.
$: rpm -D "_gpg_name rpmbuilder" --addsign outputs/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-подписи D: Размер подписи GPG: 72 D: Получил 72 байта GPG-подписи ошибка: ошибка rpmMkTemp
решение1
Отвечаю сам на этот вопрос, если кого-то это смутит.
Это сообщение об ошибке оказалось немного обманчивым. Это действительно была проблема с разрешениями (как и ожидалось), но не в каком-либо из каталогов tmp, связанных с переменными rpm.
Использование strace с
strace -p `ps --no-headers -fC rpmsign | awk '{print $2}'` -e trace=open,close
Strace показал, что после всей работы внутри каталога tmp (в данном случае /var/tmp) он попытался создать измененную версию rpm в том же каталоге, что и rpm, прежде чем (я предполагаю) переместить ее на место.Чтоrpm был «временным», о котором там говорилось.
В итоге оказалось, что у этого пользователя просто не было прав на запись в то место, где находился RPM-файл на момент подписания.
Фу.