Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is the difference between the mail-server^ task and the mail-stack-delivery package?

share|improve this question
Hey Paul, I don't want to migrate this (at least no yet) because I'm not entirely sure it is appropriate for Server Fault. I'd hate to migrate good content only for it to be closed on the other site. You might ask in their chat. I also don't understand how Sylvain's answer didn't address your question. Perhaps you could edit it to expound on exactly what you want? – Seth Apr 21 '14 at 4:02

Visit the mail-stack-delivery package page and download the tar.gz containing the Debian/Ubuntu packaging.

Open the debian/control file and look for lines beginning with Provides: like this one:

Package: dovecot-imapd
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, dovecot-core (= ${binary:Version}), ucf (>= 2.0020)
Provides: imap-server
Description: secure IMAP server that supports mbox, maildir, dbox and mdbox mailboxes

You can see that dovecot-imapd provides a package named imap-server, which is a virtual package, as defined in the Debian Policy Manual:

Sometimes, there are several packages which offer more-or-less the same functionality. In this case, it's useful to define a virtual package whose name describes that common functionality. (The virtual packages only exist logically, not physically; that's why they are called virtual.) The packages with this particular function will then provide the virtual package. Thus, any other package requiring that function can simply depend on the virtual package without having to specify all possible packages individually.

Edit: mail-server^ is not a metapackage, it's a task as defined in /usr/share/tasksel/**/*.desc

Apt can understand task if the "^" is appended to the task name but the installation process is a bit different from what tasksel is doing.

Visit Should I use tasksel, tasks in APT or install regular metapackages? for a complete description of both installation processes.

In terms of installed packages, you can easily dry-run apt-get install for both mail-server^ and mail-stack-delivery:

sudo apt-get install -s mail-server^
sudo apt-get install -s mail-stack-delivery

The task mail-server will install:


But mail-stack-delivery will install those packages instead:


I hope that answers your initial question.

share|improve this answer
This answer does not make it clear to me what the difference is between the mail-stack-delivery package and the mail-server^ metapackage. – Paul Apr 7 '14 at 20:40
Where did you find the mail-server^ metapackage, could you please add a link for reference? – Sylvain Pineau Apr 7 '14 at 20:51
MetaPackages - Official Ubuntu Documentation describes what a metapackage is, although it doesn't mention that, as I understand it, metapackages are one implementation in Ubuntu of tasksel. I have seen the mail-server^ metapackage in several articles describing how to set up and configure a mail-server. – Paul Apr 7 '14 at 21:46
My initial question was really very specific: what is the difference between mail-server^ and mail-stack-delivery? You did a good job of identifying the differences in the installation processes, but I'm not clear what the difference is in what ends up installed on the server. – Paul Apr 7 '14 at 22:16
I've updated my answer to show the packages installed by both methods. – Sylvain Pineau Apr 8 '14 at 8:56

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.