我正在为我们的软件创建一个 .deb 安装包,它依赖于正在安装的有效 SMTP 服务器。当前文件control
状态为:
Depends: mail-transport-agent
但是有一位 Debian 用户抱怨说该软件包无法安装,可能是因为他已经exim
安装了。现在我有点困惑。exim 是有效的 MTA 吗?如果是,为什么它不“提供”虚拟软件包mail-transport-agent
?
如果我编辑我的control
文件以说明:
Depends: exim | mail-transport-agent
exim
我可以假设安装软件包后可以使用 SMTP 服务器吗?或者它exim
不是 postfix、sendmail 等的替代品?
答案1
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
。