Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

What is the difference from apt's perspective between Ubuntu 12.04 LTS (Precise) kernel packages:

  • linux-image-3.2.0-57-generic
  • linux-image-3.11.0-14-generic

Such that the former satisfies meta-package linux-generic, but the latter is not selected for upgrade? Is the dependency hardcoded by version? Can the depends metadata be specified at apt install-time?

On certain hardware that works well with 3.11, I would like to use linux-image-3.11.0-14-generic and its successors as the default 12.04 kernel, selected for updates by apt-get dist-upgrade. After testing, I hope to purge linux-image-3.2.0-57-generic and not be prompted to install its 3.2.x successors.

I hope to better understand the workings of the kernel meta packages. It seems there is a 'slotting' mechanism at work here, but I don't know where that slot designation metadata lives. Is that metadata permanent for a given set of .deb files, or if it is changeable with a special invocation of apt tools (apt-get, dpkg, etc.) when installing?

My systems carry these kernels currently:

$ sudo aptitude search 'linux-' |grep -e ^i |grep -v libc
i   linux-firmware                  - Firmware for Linux kernel drivers
i   linux-generic                   - Complete Generic Linux kernel
i A linux-headers-3.2.0-57          - Header files related to Linux kernel versi
i A linux-headers-3.2.0-57-generic  - Linux kernel headers for version 3.2.0 on
i   linux-headers-generic           - Generic Linux kernel headers
i   linux-image-3.11.0-14-generic   - Linux kernel image for version 3.11.0 on 6
i   linux-image-3.2.0-57-generic    - Linux kernel image for version 3.2.0 on 64
i   linux-image-generic             - Generic Linux kernel image

And the following kernel headers are available:

$ sudo aptitude search linux-headers |grep '3.11'
p   linux-headers-3.11.0-13         - Header files related to Linux kernel versi
p   linux-headers-3.11.0-13-generic - Linux kernel headers for version 3.11.0 on
p   linux-headers-3.11.0-13-generic - Linux kernel headers for version 3.11.0 on
p   linux-headers-3.11.0-14         - Header files related to Linux kernel versi
p   linux-headers-3.11.0-14-generic - Linux kernel headers for version 3.11.0 on
p   linux-headers-3.11.0-14-generic - Linux kernel headers for version 3.11.0 on

I can see from the installed metapackage linux-generic that the 3.2.0.x kernel and header are selected. Does that mean the .deb carries a hardcoded version, and only new packages can set new dependencies?

$ sudo aptitude show linux-generic
Package: linux-generic
State: installed
Automatically installed: no
Version: 3.2.0.57.68
Priority: optional
Section: kernel
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Architecture: amd64
Uncompressed Size: 32.8 k
Depends: linux-image-generic (= 3.2.0.57.68), linux-headers-generic (= 3.2.0.57.68)
Conflicts: linux-generic
Description: Complete Generic Linux kernel

This package will always depend on the latest complete generic Linux kernel
available.

The linux-image-generic package which fulfils the dependency requirement:

$ sudo aptitude show linux-image-generic
Package: linux-image-generic
State: installed
Automatically installed: no
Version: 3.2.0.57.68
Priority: optional
Section: kernel
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Architecture: amd64
Uncompressed Size: 32.8 k
Depends: linux-image-3.2.0-57-generic, linux-firmware
Conflicts: linux-image-generic
Description: Generic Linux kernel image

This package will always depend on the latest generic kernel image
available.

And the manually-installed package that does seem to meet the same dependency requirement:

$ sudo aptitude show linux-image-3.11.0-14-generic
Package: linux-image-3.11.0-14-generic
New: yes
State: installed
Automatically installed: no
Version: 3.11.0-14.21~precise1
Priority: optional
Section: kernel
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Architecture: amd64
Uncompressed Size: 201 M
Depends: initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3)
PreDepends: dpkg (>= 1.10.24)
Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1)
Suggests: fdutils, linux-lts-saucy-doc-3.11.0 | linux-lts-saucy-source-3.11.0, linux-lts-saucy-tools,
          linux-headers-3.11.0-14-generic
Conflicts: hotplug (< 0.0.20040105-1), hotplug (< 0.0.20040105-1), linux-image-3.11.0-14-generic
Provides: fuse-module, linux-image, linux-image-3.0
Description: Linux kernel image for version 3.11.0 on 64 bit x86 SMP
This package contains the Linux kernel image for version 3.11.0 on 64 bit
x86 SMP.

Also includes the corresponding System.map file, the modules built by the
packager, and scripts that try to ensure that the system is not left in an
unbootable state after an update.

Supports Generic processors.

Geared toward desktop and server systems.

You likely do not want to install this package directly. Instead, install
the linux-generic meta-package, which will ensure that upgrades work
correctly, and that supporting packages are also installed.

I have the same question regarding linux-headers. The 3.11 linux-headers arent selected for upgrade, I have to manually install the package. After doing this once, can it be made the default for upgrades?

share|improve this question
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.