Короче говоря: я пытаюсь установить 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
После запуска dmesg при запуске. Amavis выдает ошибку, потому что зависимость spamassassin не настроена.
Я проверил файлы журнала:
apt history.log
apt term.log
dpkg.log
syslog.log
, но никакой дополнительной информации.
Я пробовал dpkg -D со всеми возможными восьмеричными числами, но я не нашел ничего полезного в том, что может пойти не так.
Было написано множество вопросов и возможных решений об ошибках dpkg, и многие из них я пробовал, но без дополнительной информации у меня нет ощущения, что я что-то получаю.
Конечно, где-то должна быть возможность прочитать, что идет не так, или запустить какую-нибудь запись, чтобы она была записана?
Хорошо, я нашел решение этой проблемы. Хотя я не смог запустить регистрацию, чтобы получить больше данных, уже представленные данные имели ключ к решению проблемы.
dpkg: error processing spamassassin (--configure):
subprocess installed post-installation script returned error exit status 1
говорит, что dpkg обнаружил ошибку при обработке spamassassin при запуске configure. Следующая строка сообщает нам, что сценарий после установки не завершился корректно.
В каталоге / var / lib / dpkg / info мы можем найти файлы сценариев dpkg, файл: spamassassin.postinst дает нам файл сценария, который сгенерировал ошибку .
В этом файле мы знаем, что нам нужно посмотреть на код, запускаемый configure:
if ["$ 1" = "configure"]; затем
и после некоторой отладки я обнаружил строку:
su debian-spamd -c "sa-update --gpghomedir / var / lib / spamassassin / sa -update-keys \ --import /usr/share/spamassassin/GPG.KEY"
вернул код выхода 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
)
Это обеспечит вам построчную отладку сценария оболочки, так что вы сможете определить, где он находится, с ненулевым кодом ( вызывая сбой установки / обновления).
Вероятно, для отладки потребуются, по крайней мере, некоторые навыки написания сценариев.