Estou enfrentando esse erro ao assinar um arquivo rpm. Não tenho muito o que fazer, como você pode ver, e o Google parece estar vazio. Estou perplexo !
Alguém sabe o que causa isso? Suponho que esteja tentando criar algum tipo de arquivo temporário... em algum lugar.
$: rpm -D "_gpg_name rpmbuilder" --addsign saídas/sllop-0.0.6-1.x86_64.rpm --verbose --debug Insira a frase secreta: A frase secreta é boa. saídas/sllop-0.0.6-1.x86_64.rpm: D: Tamanho esperado: 51827 = lead(96)+sigs(180)+pad(4)+dados(51547) D: Tamanho real: 51827 D: Tamanho da assinatura GPG: 72 D: Obteve 72 bytes de assinatura GPG D: Tamanho da assinatura GPG: 72 D: Obteve 72 bytes de assinatura GPG erro: rpmMkTemp falhou
Responder1
Respondendo automaticamente caso alguém fique confuso com isso.
Esta mensagem de erro acabou sendo um pouco enganosa. Na verdade, foi um problema de permissão (como esperado), mas não em nenhum dos diretórios tmp relacionados às variáveis rpm.
Usando strace com
strace -p `ps --no-headers -fC rpmsign | awk '{print $2}'` -e trace = abrir, fechar
Strace mostrou que depois de todo o trabalho dentro do diretório tmp (/var/tmp neste caso) ele tentou fazer uma versão alterada do rpm no mesmo diretório do rpm, antes (presumo) de movê-lo para o lugar.Querpm era o 'temporário' ao qual se referia.
Depois de tudo isso, esse usuário simplesmente não tinha permissão de gravação para onde o rpm estava localizado ao ser assinado.
Eca.