I'm using ppa:graphics-drivers/ppa to install nvidia drivers. If you'll go to "Overview of published packages" in its description (and filter by one ubuntu release for convinience), you will see packages like nvidia-graphics-drivers-***
, where ***
is a number.
So far so good. However, if you add this ppa to your system, none of that packages will appear (apt will say "no such package"), but some other ones (like nvidia-dkms-***
, nvidia-utils-***
and so on) will.
How is that implemented? Is it implemented on PPA side (it show one to us but many to apt) or on apt/dpkg side (there is something special about package itself)?
This is one case where there are large source packages from which multiple binary packages are built.
Source packages are just archives of all source code files together with whatever else is needed to compile the actual binaries that can be installed. Launchpad performs these builds for the developers, who just have to upload the sources and configure it accordingly. Sometimes it makes sense to have a large code base containing everything related to a project, even if the result is going to be split up into several smaller packages that can be installed individually or (partially) depend on each other.
Have a look at the View package details page of the PPA (link is e.g. in the top right corner).
Here you see a list of all source packages, but each entry is expandable when you click on it and reveals more detailed information, including a section Built packages that lists all the binary packages built from this source. These package names are what you can install with
apt
. Below that is also a list with download links to these .deb package files (but you should always install withapt
, not download them manually).For example, the single source package
nvidia-graphics-drivers-430 - 430.14-0ubuntu0~gpu18.04.1
builds all these binary packages :