Why are there so many "linux-" kernel packages on my machine, and what do they all do?

A kernel image package is related to the kernel image and modules which are loaded when your OS is booted. A header package provide files that are necessary to build out-of-tree kernel modules and/ or some other programs from source.

linux-image-generic

Usually you install the linux-image-generic package. That is a meta-package that does not ship any files itself. Instead, it depends on the latest kernel version provided by Ubuntu, for example linux-image-3.8.0-19-generic. This package is needed to receive kernel updates.

linux-headers-generic

A similar story holds for the linux-headers-generic package. You need to install this package if you use external kernel modules such as proprietary video drivers. The linux-generic package is a meta-package that ensures that both the linux-headers-generic and linux-image-generic packages are installed.

-generic-pae

This is a variant of the -generic packages. See What's the meaning of "-pae" at the end of kernel version?

linux-image-extra-*

This package was introduced with Ubuntu 12.10 and provides additional kernel modules (drivers). See What is the linux-image-extra package for and do I need it?.

Why multiple linux packages with the different version numbers?

The kernel is a critical piece of your system. Newer kernel versions may introduce a bug that make you unable to start your system successfully. With multiple kernels installed simultaneously, you can change the kernel version in the boot menu.


Generally when you do an apt-get dist-upgrade it will upgrade everything that is available including your kernel. Ubuntu generally keeps 3 or 4 version of kernel (if i remember correctly) just in case the new kernel causes major issue or problems. If new kernel doesnt work well on your drivers etc, you can boot back to the older kernel. That is what it is for. You can remove the kernel using apt-get remove linux-kernel-* or using Synaptic Package Manager(which has to be installed seperately). But it would be safer to leave at least one older kernel version as backup.

Tags:

Kernel