Debian – Virtual packages as aptitude understands and package-management

aptitudedebianpackage-management

I have seen in Debian that quite a few packages are virtual packages. Why do such virtual packages exist ?

for e.g. :-

$ aptitude show pppoeconf
Package: pppoeconf                       
State: installed
Automatically installed: no
Version: 1.21
Priority: optional
Section: net
Maintainer: Gregory Colpart <reg@debian.org>
Architecture: all
Uncompressed Size: 297 k
Depends: whiptail-provider | whiptail, ppp (>= 2.4.2+20040428-2) | pppoe (>= 3.0), ppp (>= 2.4.1.uus2-4), gettext-base (>= 0.13), sed (>= 3.95),
         ifupdown (>= 0.7.44~), iproute2
Recommends: locales
Suggests: xdialog
Description: configures PPPoE/ADSL connections
 User-friendly tool for initial configuration of a DSL (PPPoE) connection.

See the suggests :-

Suggests: xdialog

Now let's try to see it a little closer –

$ aptitude show xdialog
No current or candidate version found for xdialog
Package: xdialog
State: not a real package

Why is it there ? One could it, it was a real package in say wheezy or jessie and then it was removed. Could this be the only reason or are there possibilities of more reasons ?

The above I have just taken as an example.

Best Answer

In the case of xdialog there was once such a package, but it got removed. Judging from its homepage there was some trouble between the author and the Debian people.

Then there are other so called virtual packages, which don't exist, but which are provided by other packages. These mechanism is used when different packages provide the same function.

For example the package mail-transport-agent is a virtual package which is provided by exim, postfix, qmail etc. So if you have a package which needs a MTA you make it depend on this virtual package and don't have to make it depend on exim OR postfix OR qmail ...
And you don't have to change your package if another alternative appears.

Related Question