3

Я сталкиваюсь с этой ошибкой при подписании файла RPM. У меня не так много работы, как вы можете видеть, и Google, кажется, вышел пустым. Я в тупике!

Кто-нибудь знает, что вызывает это? Я предполагаю, что он пытается создать какой-то временный файл ... где-то.

$: rpm -D "_gpg_name rpmbuilder" --addsign outputs/sllop-0.0.6-1.x86_64.rpm --verbose --debug
Enter pass phrase: 
Pass phrase is good.
outputs/sllop-0.0.6-1.x86_64.rpm:
D: Expected size:        51827 = lead(96)+sigs(180)+pad(4)+data(51547)
D:   Actual size:        51827
D: GPG sig size: 72
D: Got 72 bytes of GPG sig
D: GPG sig size: 72
D: Got 72 bytes of GPG sig
error: rpmMkTemp failed

1 ответ1

3

Самостоятельно отвечая на этот вопрос, если кто-то еще смущается этим.

Это сообщение об ошибке оказалось немного вводящим в заблуждение. Это действительно была проблема с разрешениями (как и ожидалось), но она не была связана ни с одной из директорий 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 при подписании.

Тьфу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .