2

I am creating a .deb installation package for our software, which depends on a valid SMTP server being installed. Currently the control file states:

Depends: mail-transport-agent

However one Debian user complained that the package wouldn't install, probably because he has exim installed. Now I am a little confused. Is exim a valid MTA? If so, why doesn't it "provide" the virtual package mail-transport-agent?

If I edit my control file to state:

Depends: exim | mail-transport-agent

Can I assume a working SMTP server will be available when the exim package is installed? Or is exim not really a replacement for postfix, sendmail, etc?

1 Answers1

1

Exim is a full MTA, just like Postfix.

The several flavours of Exim, such as exim4-daemon-light, all have a nice

Provides: [...] mail-transport-agent

line there.

If your user complains it won't install, I see these obvious causes:

  • sudo dpkg -i package.deb will result in a failure if dependencies aren't met, just like will happen with any other package with dependencies. He has to run sudo apt-get install -f to satisfy them and complete the installation, but he might not know he has to do this.

    Solution: ask full output of his installation attempt and it will probably hint on running some fix-broken command.

  • He has installed Exim from source and his package management tries to install it over his local install (and he refuses to do so - for a reason).

    Solution: make it a Recommends: instead of a hard Depends:, to relax the dependency a bit. Regular installation methods do install the recommended dependencies, but can be relaxed by the user, e.g. --no-install-recommends via apt-get.

gertvdijk
  • 69,427