I believe this is because any single kernel package (or line of kernel packages) isn't required - simply because you can choose from a number of different kernel packages to suit your needs.
On Ubuntu 22.04 for instance, you can freely choose from the following lines of kernel packages:
It should be noted that the above are metapackages, but the included kernel image
, headers
and modules
all share the optional
piority.
On top of this are different kernel images optimized for various cloud platforms - and maybe a bunch of other flavors as well.
Neither of these specific kernel images are required - but for the system to function, you need to choose at least one of them that you want to run.
Another possibility is that you have compiled your own kernel - and in this case it's also not at all required to have a kernel package installed.
More information about the priority levels are found in the Debian Packaging Documentation.
7.7. What is an Essential, Required, Important, Standard, Optional, or Extra package?
Each Debian package is assigned a priority by the distribution
maintainers, as an aid to the package management system. The
priorities are:
Required: packages that are necessary for the proper functioning of the system.
This includes all tools that are necessary to repair system defects. You must not remove these packages or your system may become
totally broken and you may probably not even be able to use dpkg to
put things back. Systems with only the Required packages are probably
unusable, but they do have enough functionality to allow the sysadmin
to boot and install more software.
Important packages should be found on any Unix-like system.
Other packages which the system will not run well or be usable without will be here. This does NOT include Emacs or X or TeX or any
other large application. These packages only constitute the bare
infrastructure.
Standard packages are standard on any Linux system, including a reasonably small but not too limited character-mode system. Tools
are included to be able to send e-mail (with mutt) and download files
from archive servers.
This is what will be installed by default if users do not select anything else. It does not include many large applications, but it
does include the Python interpreter and some server software like
OpenSSH (for remote administration) and Exim (for mail delivery,
although it can be configured for local delivery only). It also
includes some common generic documentation that most users will find
helpful.
Optional packages include all those that you might reasonably want to install if you do not know what they are, or that do not have
specialized requirements.
This includes X, a full TeX distribution, and lots of applications.
Extra: packages that either conflict with others with higher priorities, are only likely to be useful if you already know what they
are, or have specialized requirements that make them unsuitable for
"Optional".
If you do a default Debian installation all the packages of priority
Standard or higher will be installed in your system. If you select pre-defined tasks you will get lower priority packages too.
Additionally, some packages are marked as Essential since they are
absolutely necessary for the proper functioning of the system. The
package management tools will refuse to remove these.
From what I can see, it wouldn't make any difference in apt
functionality if a package is of optional
, standard
or important
priority. In the end, packages that are not part of a core Linux system will almost always be optional
or extra
.
If anyone have qualified comments or opinions on this, please let me know in the comment section.