Resumindo: estou tentando instalar o spamassassin, mas o dpkg retorna apenas com:
dpkg: error processing spamassassin (--configure):
subprocess installed post-installation script returned error exit status 1
Tentei encontrar mais informações sobre o que está dando errado, mas não consigo encontrar em nenhum lugar nenhum registro útil.
Em / var / crash, um spamassassin crashreport é gerado, mas isso fornece apenas erros antigos do dpkg e:
Start-Date: 2014-02-17 19:18:13
Commandline: apt-get install spamassassin
AptOrdering:
spamassassin: Configure
amavisd-new-postfix: Configure
Seguido pelo registro do dmesg na inicialização. O Amavis comete um erro porque a dependência spamassassin não está configurada.
Eu verifiquei os arquivos de log:
apt history.log
apt term.log
dpkg.log
syslog.log
mas nenhuma informação adicional.
Eu tentei o dpkg -D com todos os octais possíveis, mas não acho nada útil sobre o que poderia dar errado.
Muitas perguntas e possíveis soluções foram escritas sobre os erros do dpkg e muitas que tentei, mas sem informações adicionais, não sinto que estou chegando a lugar algum.
Certamente deve haver em algum lugar a possibilidade de ler o que está acontecendo de errado ou ativar alguns registros para que sejam registrados?
Respostas:
Ok, eu encontrei a solução para este problema. Embora eu não tenha conseguido aumentar o registro para obter mais dados, os dados já apresentados tinham a pista para o problema.
diz que o dpkg encontrou um erro ao processar o spamassassin durante a execução do configure. A linha seguinte informa que o script de pós-instalação não foi finalizado corretamente.
No diretório / var / lib / dpkg / info , podemos localizar os arquivos de script do dpkg, o arquivo: spamassassin.postinst nos fornece o arquivo de script que gerou o erro.
Dentro deste arquivo, sabemos que precisamos examinar o código executado pelo configure:
e depois de alguma depuração, descobri a linha:
retornou o código de saída 1 (execute o comando @commandline e use echo $? next para obter o código de saída)
O problema era que o usuário debian-spamd já existia no meu sistema, mas seu shell de login era / bin / false. Suportar com / bin / false retorna sem nenhuma mensagem além do código de saída 1.
Adicionar -s / bin / sh ao comando resolveu o problema, mas no final alterei o shell de login do usuário para ficar sincronizado com futuras atualizações.
fonte
Geralmente, para depurar esses problemas, você deve editar
/var/lib/dpkg/info/spamassassin.postinst
(ou.preinst
, pr.prerm
ou.postrm
; dependendo de qual deles está falhando) e alterar#!/bin/sh
na linha superior para#!/bin/sh -x
(a mesma coisa se forbash
: basta adicionar-x
)Isso forneceria a depuração linha a linha do script de shell, para que você pudesse dizer onde ele sai com código diferente de zero (causando falha na instalação / atualização).
Provavelmente, exigiria pelo menos algumas habilidades de script de shell para depuração.
fonte