En resumen: estoy tratando de instalar spamassassin pero dpkg solo regresa con:
dpkg: error processing spamassassin (--configure):
subprocess installed post-installation script returned error exit status 1
He tratado de encontrar más información sobre lo que está yendo mal, pero no puedo encontrar ningún registro útil en ninguna parte.
En / var / crash se genera un informe de bloqueo de spamassassin, pero esto solo da errores antiguos de dpkg y:
Start-Date: 2014-02-17 19:18:13
Commandline: apt-get install spamassassin
AptOrdering:
spamassassin: Configure
amavisd-new-postfix: Configure
Seguido por el registro de dmesg desde el inicio. Amavis da un error porque la dependencia spamassassin no está configurada.
Revisé los archivos de registro:
apt history.log
apt term.log
dpkg.log
syslog.log
Pero no hay información adicional.
Intenté dpkg -D con todos los posibles octales, pero no encuentro nada útil sobre lo que podría salir mal.
Se han escrito muchas preguntas y posibles soluciones sobre los errores de dpkg y muchas las he probado, pero sin información adicional no tengo la sensación de que estoy llegando a ningún lado.
¿Seguramente debe haber en algún lugar la posibilidad de leer lo que va mal o de subir algunos registros para que se registre?
Respuestas:
Ok, he encontrado la solución para este problema. Pensé que no podía poner en marcha el registro para obtener más datos, los datos ya presentados tenían la pista del problema.
dice que dpkg encontró un error al procesar spamassassin al ejecutar configure. La siguiente línea nos dice que el script posterior a la instalación no terminó correctamente.
En el directorio / var / lib / dpkg / info podemos ubicar los archivos de script de dpkg, el archivo: spamassassin.postinst nos da el archivo de script que generó el error.
Dentro de este archivo sabemos que tenemos que mirar el código ejecutado por configure:
y después de algunas depuraciones descubrí la línea:
devolvió el código de salida 1 (ejecute el comando @commandline y use echo $? next para obtener el código de salida)
El problema era que el usuario debian-spamd ya existía en mi sistema pero su shell de inicio de sesión era / bin / false. Sumar con / bin / false devuelve sin ningún mensaje pero el código de salida 1.
Agregar -s / bin / sh al comando resolvió el problema, aunque al final modifiqué el shell de inicio de sesión del usuario para mantener la sincronización con futuras actualizaciones.
fuente
En general, para depurar estos problemas, debe editar
/var/lib/dpkg/info/spamassassin.postinst
(o.preinst
, pr.prerm
o.postrm
; dependiendo de cuál falla) y cambiar#!/bin/sh
en la línea superior a#!/bin/sh -x
(lo mismo si en subash
lugar: solo agregue-x
)Eso le proporcionaría una depuración línea por línea del script de shell, por lo que podría saber dónde sale con un código distinto de cero (lo que hace que la instalación / actualización falle).
Sin embargo, probablemente requeriría al menos algunas habilidades de scripting de shell para depurar.
fuente