En bref: j'essaie d'installer spamassassin mais dpkg ne retourne qu'avec:
dpkg: error processing spamassassin (--configure):
subprocess installed post-installation script returned error exit status 1
J'ai essayé de trouver plus d'informations sur ce qui ne va pas, mais je ne trouve aucun journal utile.
Dans / var / crash, un rapport de crash de spamassassin est généré mais cela ne donne que les anciennes erreurs de dpkg et:
Start-Date: 2014-02-17 19:18:13
Commandline: apt-get install spamassassin
AptOrdering:
spamassassin: Configure
amavisd-new-postfix: Configure
Suivi par la journalisation dmesg depuis le démarrage. Amavis donne une erreur car le spamassassin de dépendance n'est pas configuré.
J'ai vérifié les fichiers journaux:
apt history.log
apt term.log
dpkg.log
syslog.log
mais pas d'informations supplémentaires.
J'ai essayé dpkg -D avec tous les octaux possibles mais je ne trouve rien d'utile sur ce qui pourrait mal tourner.
Beaucoup de questions et de solutions possibles ont été écrites sur les erreurs de dpkg et j'ai essayé beaucoup, mais sans information supplémentaire, je n'ai pas le sentiment que j'obtiens quelque part.
Il doit sûrement y avoir quelque part une possibilité de lire ce qui ne va pas ou de lancer une journalisation pour qu'elle soit consignée?
Réponses:
Ok, j'ai trouvé la solution à ce problème. Je pensais que je ne pouvais pas augmenter la journalisation pour obtenir plus de données, les données déjà présentées avaient la clé du problème.
indique que dpkg a rencontré une erreur de traitement de spamassassin lors de l'exécution de configure. La ligne suivante nous indique que le script de post-installation ne s'est pas terminé correctement.
Dans le répertoire / var / lib / dpkg / info, nous pouvons localiser les fichiers de script de dpkg, le fichier: spamassassin.postinst nous donne le fichier de script qui a généré l'erreur.
Dans ce fichier, nous savons que nous devons regarder le code exécuté par configure:
et après quelques débogages, j'ai découvert la ligne:
a retourné le code de sortie 1 (exécutez la commande @commandline et utilisez echo $? next pour obtenir le code de sortie)
Le problème était que l'utilisateur debian-spamd existait déjà sur mon système mais son shell de connexion était / bin / false. Su-ing avec / bin / false renvoie sans aucun message mais exitcode 1.
L'ajout de -s / bin / sh à la commande a résolu le problème, mais à la fin j'ai modifié le shell de connexion de l'utilisateur pour rester synchronisé avec les futures mises à jour.
la source
Généralement, pour déboguer de tels problèmes, vous devez modifier
/var/lib/dpkg/info/spamassassin.postinst
(ou.preinst
, pr.prerm
ou.postrm
; en fonction de celui qui échoue) et changer#!/bin/sh
sur la ligne supérieure en#!/bin/sh -x
(même chose si à labash
place: ajoutez simplement-x
)Cela vous fournirait un débogage ligne par ligne du script shell, afin que vous puissiez dire où il se termine avec un code différent de zéro (ce qui entraînerait l'échec de l'installation / mise à niveau).
Cela nécessiterait probablement au moins quelques compétences de script shell pour déboguer.
la source