9

Why do the linux-image kernel packages have their priority in apt/dpkg set as optional rather than important or required?

$ apt show linux-image-5.4.0-26-generic
Package: linux-image-5.4.0-26-generic
Version: 5.4.0-26.30
Built-Using: linux (= 5.4.0-26.30)
Priority: optional
Section: kernel
root@luoyaoming:~# apt showsrc linux                    
Package: linux
Format: 1.0
Binary: *
Architecture: all amd64 armhf arm64 ppc64el s390x i386
Version: 5.4.0-26.30
Priority: optional
Section: devel
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
2
  • 2
    because those do not need to be important or required.
    – Rinzwind
    Dec 6, 2022 at 13:52
  • Because you only need a kernel image, which can be satisfied by installing any one of them. Which means that any installed kernel images other than the one currently running are not necessary for the system's functioning.
    – Shadur
    Dec 8, 2022 at 10:36

2 Answers 2

15

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.

5
  • 2
    This may be correct. But a couple of comments. 1) You mentioned meta-packages, not real kernel images. These are different and are not required for sure. 20 If you build your own kernel, you are the person who sets that priority ;-)
    – Pilot6
    Dec 6, 2022 at 14:28
  • 1
    Maybe it makes sense to find out how this field is used by dpkg... If it doesn't let to remove required packages without some additional switch, then it makes sense to set them optional.
    – Pilot6
    Dec 6, 2022 at 14:29
  • 1
    +1: "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." Well said.
    – user535733
    Dec 6, 2022 at 21:44
  • 5
    Actually, depending on the system, you may not need to choose a kernel package at all. The most common example these days is a container, but other examples include a prefixed install for use with chroot, or certain types of virtual machine setups (where the host provides the kernel). Dec 7, 2022 at 0:44
  • "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." - isn't this true of (literally) every package?
    – user253751
    Dec 8, 2022 at 10:43
12

Ubuntu could run in a virtual machine where the kernel is provided at boot time by the host. Or it could run in a container like chroot, LXC or Docker, in which case it is using the host's kernel and does not need its own

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.