Qual é o efeito dos scripts rpm retornando 1?

Qual é o efeito dos scripts rpm retornando 1?

De acordo com a documentação do RPM, o%pré,%publicar,%preune%postunscriptlets devem retornar 0 para que a (des)instalação prossiga.

(1)Mas qual é o efeito de um desses scriptlets retornar um valor diferente de zero?

(2)A operação realizada até agora será desfeita, deixando o sistema como estava antes de invocar a (des)instalação do RPM?

(3)O mecanismo de transação está envolvido?

Examinei a documentação (em muitas páginas, incluindo o documento oficial do Fedora), mas não encontrei nenhuma pista (pelo menos nada 'preto no branco' no meu entendimento).

Responder1

As informações que encontrei vêm de Bug Redhat 216221 de novembro de 2006. Não sei se o texto a seguir ainda é válido.

A última entrada do post diz:

  • Os scriptlets %pre e %preun que saem com código diferente de zero fazem com que a instalação/apagamento falhe como antes. Este comportamento precisa ser preservado, pois vários pacotes o utilizam para impedir a instalação/desinstalação em algumas condições.
  • o código de saída diferente de zero de outros scriptlets é tratado apenas como um aviso (ou seja, %postun falhando registrará um aviso, mas o pacote será removido de qualquer maneira)
  • scriptlets morrendo em sinais e outras formas "anormais" ainda são tratados como erros
  • para todos os erros de scriptlet, a notificação RPMCALLBACK_SCRIPT_ERROR é emitida para o callback, com a tag do script com falha passada no parâmetro "amount" e no parâmetro "total" contendo RPMRC_OK / RPMRC_FAIL para sinalizar se o rpm o tratou como um aviso ou erro

Responder2

Só tenho respostas parciais, mas espero que ajude você no caminho...

  1. a instalação será consideradafracassado, mas afaik não há impacto real: os arquivos ainda estarão presentes em seu sistema, etc. No entanto, tive problemas para remover um pacote onde o %preunscriptlet falhou.
  2. Nenhuma operação é desfeita. rpmnão é possível saber magicamente como desfazer os comandos que você colocou em seus scriptlets.
  3. Eu realmente não sei se o mecanismo de transação está envolvido. Você poderia fazer alguns testes para isso: instalando um rpm bom e outro com script quebrado %post...

informação relacionada