6.8 What is a Virtual Package?
A virtual package is a generic name that applies to any one of a group of
packages, all of which provide similar basic functionality. For example, both
the tin and trn programs are news readers, and should
therefore satisfy any dependency of a program that required a news reader on a
system, in order to work or to be useful. They are therefore both said to
provide the "virtual package" called news-reader.
Similarly, smail and sendmail both provide the
functionality of a mail transport agent. They are therefore said to provide
the virtual package, "mail transport agent". If either one is
installed, then any program depending on the installation of a
mail-transport-agent will be satisfied by the existence of this
virtual package.
Debian provides a mechanism so that, if more than one package which provide the
same virtual package is installed on a system, then system administrators can
set one as the preferred package. The relevant command is
update-alternatives, and is described further in Some users like mawk, others like gawk;
some like vim, others like elvis; some like trn, others like tin; how does
Debian support diversity?, Section 10.10.