Я создаю установочный пакет .deb для нашего программного обеспечения, который зависит от установленного действующего SMTP-сервера. В настоящее время файл control
гласит:
Depends: mail-transport-agent
Однако один пользователь Debian пожаловался, что пакет не будет установлен, возможно потому, что он установил exim
. Теперь я немного растерялся. Является ли exim действительным MTA? Если так, то почему он не «предоставляет» виртуальный пакет mail-transport-agent
?
Если я отредактирую свой файл control
, указав:
Depends: exim | mail-transport-agent
Могу ли я предположить, что работает SMTP сервер будет доступен после установки пакета exim
? Или exim
не является заменой postfix, sendmail и т. Д.?
Exim - полный MTA, как и Postfix.
У нескольких разновидностей Exim, таких как exim4-daemon-light
, есть хорошая линия
Provides: [...] mail-transport-agent
.
Если ваш пользователь жалуется, что не установит, я вижу следующие очевидные причины:
sudo dpkg -i package.deb
приведет к сбою, если зависимости не будут выполнены, как это произойдет с любым другим пакетом с зависимостями. Он должен запустить sudo apt-get install -f
, чтобы удовлетворить их и завершить установку, но он может не знать, что должен это сделать.
Решение: запросите полный вывод его попытки установки, и это, вероятно, намекает на выполнение какой-то команды с исправлением ошибок.
Он установил Exim из исходного кода, и его управление пакетами пытается установить его поверх своей локальной установки (и он отказывается это сделать - по причине).
Решение: сделать Recommends:
вместо жесткого Depends:
, чтобы немного ослабить зависимость. Обычные методы установки устанавливают рекомендуемые зависимости, но могут быть смягчены пользователем, например, --no-install-recommends
через apt-get
.