Вкратце: я пытаюсь установить spamassassin, но dpkg возвращается только с:
dpkg: error processing spamassassin (--configure):
subprocess installed post-installation script returned error exit status 1
Я пытался найти больше информации о том, что идет не так, но я не могу найти нигде полезного журнала.
В / var / crash генерируется аварийный отчет spamassassin, но это дает только старые ошибки dpkg и:
Start-Date: 2014-02-17 19:18:13
Commandline: apt-get install spamassassin
AptOrdering:
spamassassin: Configure
amavisd-new-postfix: Configure
Затем следует запись в журнал при запуске. Amavis выдает ошибку, потому что зависимость spamassassin не настроена.
Я проверил файлы журнала:
apt history.log
apt term.log
dpkg.log
syslog.log
но никакой дополнительной информации.
Я пробовал dpkg -D со всеми возможными восьмеричными числами, но я не нашел ничего полезного в том, что может пойти не так.
Об ошибках dpkg было написано множество вопросов и возможных решений, и многие из них я пробовал, но без дополнительной информации у меня нет ощущения, что я что-то получаю.
Конечно, где-то должна быть возможность прочитать, что идет не так, или запустить какую-нибудь запись, чтобы она была записана?
Ответы:
Хорошо, я нашел решение этой проблемы. Хотя я не смог запустить регистрацию, чтобы получить больше данных, уже представленные данные имели ключ к решению проблемы.
говорит, что dpkg обнаружил ошибку при обработке spamassassin при запуске configure. Следующая строка сообщает нам, что сценарий после установки не завершился корректно.
В каталоге / var / lib / dpkg / info мы можем найти файлы сценариев dpkg, файл: spamassassin.postinst дает нам файл сценария, который сгенерировал ошибку.
В этом файле мы знаем, что мы должны посмотреть на код, запускаемый configure:
и после некоторой отладки я обнаружил строку:
вернул код выхода 1 (запустите команду @commandline и используйте echo $? next для получения кода выхода)
Проблема заключалась в том, что пользователь debian-spamd уже существовал в моей системе, но его оболочкой для входа была / bin / false. При использовании / bin / false возвращается без какого-либо сообщения, кроме кода выхода 1.
Добавление -s / bin / sh к команде решило проблему, хотя в конце я изменил оболочку входа пользователя, чтобы синхронизировать ее с будущими обновлениями.
источник
Как правило, для устранения таких проблем вы должны отредактировать
/var/lib/dpkg/info/spamassassin.postinst
(или.preinst
pr.prerm
или.postrm
; в зависимости от того, какая из них выходит из строя) и изменить#!/bin/sh
в верхней строке на#!/bin/sh -x
(то же самое, еслиbash
вместо этого: просто добавьте-x
)Это обеспечит вам построчную отладку сценария оболочки, так что вы сможете определить, где он находится, с ненулевым кодом (что приведет к сбою установки / обновления).
Впрочем, для отладки потребуется, по крайней мере, некоторые навыки написания сценариев.
источник