Em toda a minha busca, eu decidi que isso era um bug na versão rpmbuild do CentOS 6. Uma rápida 'yum update' resolveu o problema, como eu suspeitava :) Espero que isso ajude.
Quando tento executar este comando:
rpmbuild -bb SPECS/software.spec
Eu recebo um erro quando o arquivo WAR (como no arquivo de web do tomcat java) está sendo adicionado ao rpm:
error: create archive failed on file /<filepath>/<filename>.war: cpio: Bad magic
Isso não costumava acontecer. As únicas coisas que mudaram desde que isso funcionou foi uma atualização. Além disso, não há problemas acontecendo como na minha caixa do CentOS 5. Eu compilo e construo exatamente o mesmo conjunto de códigos em ambas as máquinas, mas o CentOS 6 não cria um rpm.
Como faço para solucionar isso? Eu já pesquisei e recebi poucos (se houver) links úteis. Isso não aparece em nenhum lugar no guia do usuário para o RPM, até onde eu posso ver, e o Maximum RPM não tem nenhuma seção sobre isso.
Tente verificar seu diretório raiz do rpmbuild. No meu caso, o disco estava cheio e o rpm build não tinha espaço para criar o rpm. Falhou com o erro de má magia cpio, que é um erro enganador.
NOTA: Eu tentei a atualização / atualização do yum que não ajudou.
Você pode tentar executar o rpmbuild com -vv para que você veja exatamente onde ele foi bloqueado? É provável que o arquivo em questão não seja encontrado no diretório de trabalho por algum motivo ou esteja corrompido. Número mágico refere-se aos bytes iniciais de um arquivo unix. Magia do homem para detalhes.
Eu tive este problema por causa de um / var / tmp completo, limpando um pouco de espaço fixo.
No meu caso, isso ocorre devido ao armazenamento insuficiente restante na minha máquina. Eu liberei espaço suficiente necessário para o RPM e então tudo funcionou bem.
Estou usando o CpackRPM no cmake . Embora a atualização de rpmbuild
para a última versão não tenha sido útil no meu caso, eu entendo esse erro devido a alguns arquivos em meus pacotes que eles devem executar com privilégios de root .
Então, eu executo o cpack ou faço o pacote com sudo ou usuário root.
Neste caso, você deve se preocupar com as variáveis _tobdir
e _buildroot
para não serem afetadas por algumas configurações no rpmbuild.