On Thu, Sep 16, 2021 at 10:20:45PM +0200, Axel Beckert wrote:
> Do you know of any other non-real package type than "virtual"?
The message from apt is hardcoded, so same for all virtuals, but from
a theory point of view apt "knows" about four different types:
- pure virtual (= multiple providers)
- single virtual (= only one provider)
- mixed virtual (= a real package with that name also exists)
- missing (= the name only appears in dependencies)
(and of course the "normal" only-real packages)
You can see that being used in 'apt-cache stats' output.
The practical difference is mostly marginal and not really something we
concern users with all too much. Error messages are e.g. different if
the unsatisfiable dependency is a "missing" package.
Trying to install a mixed package will install the real package. While
a pure virtual will display an error listing the available options.
A single virtual package on the other hand will be automatically picked
with a notice and installed.
I haven't checked, but I presume aptitude behaves similar as that is
more or less a direct consequence of how libapt itself works or
something people actively complain about if it isn't working that way.
APTs source code has a FIXME in that place reminding us that we should
display here the possible providers (like we do for install as
mentioned). It isn't implemented yet through. On the other hand I highly
doubt we will expose the type of virtual in any real capacity to the
user. I would imagine 'missing' would just say that there is no
provider, while pure & single would display a list – mixed already shows
the info of the real package.
I presume the grant idea behind mentioning "virtual" here in apt is that
the user has another term available which might be easier to look up as
not everyone will know what a "not real" package even is – they all do
not exist in the physical space and are hence by definition all not
real/virtual?! If that is true or not is anyone's guess. I do not
consider it bloat on the apt side, but I also can't really consider it
missing for aptitude… we might agree on the fact that the list of
providers is missing here through. ☺