Install Debian Backports kernel automatically
Solution 1
Check what that package depends on and what those dependencies need as well. For example I see this for my machine:
#apt-cache show linux-image-amd64
Package: linux-image-amd64
<snip>
Depends: linux-image-3.16.0-4-amd64
and
# apt-cache show linux-image-3.16.0-4-amd64
Package: linux-image-3.16.0-4-amd64
<snip>
Depends: kmod | module-init-tools, linux-base (>= 3~), debconf (>= 0.5) | debconf-2.0, initramfs-tools (>= 0.110~) | linux-initramfs-tool
Pre-Depends: debconf | debconf-2.0
Check if dependencies are taken from backports as well.
Solution 2
sudo apt-get install -t wheezy-backports linux-image-amd64
it is not convenient I know .. but it is the right way to do things without having troubles in future (IMHO of course)
Solution 3
Change the top line in your preferences to
Package: linux-image-*
Run
apt-get update
Try to install again. If you still get the error, check
aptitude why-not linux-image-3.16.0-0.bpo.4-amd64
Related videos on Youtube

Tim Stoop
Updated on September 18, 2022Comments
-
Tim Stoop 3 months
I've got the following pinnings set:
Package: linux-image-amd64 Pin: release a=wheezy-backports Pin-Priority: 1001 Package: * Pin: release a=wheezy-backports Pin-Priority: 499
I get the following error:
$ sudo apt-get install linux-image-amd64 Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: linux-image-amd64 : Depends: linux-image-3.16.0-0.bpo.4-amd64 but it is not going to be installed E: Unable to correct problems, you have held broken packages.
The policies seem to be correct:
$ apt-cache policy linux-image-amd64 linux-image-amd64: Installed: 3.2+46 Candidate: 3.16+63~bpo70+1 Package pin: 3.16+63~bpo70+1 Version table: 3.16+63~bpo70+1 1001 499 http://ftp.nl.debian.org/debian/ wheezy-backports/main amd64 Packages *** 3.2+46 1001 500 http://ftp.nl.debian.org/debian/ wheezy/main amd64 Packages 100 /var/lib/dpkg/status $ apt-cache policy linux-image-3.16.0-0.bpo.4-amd64 linux-image-3.16.0-0.bpo.4-amd64: Installed: (none) Candidate: 3.16.7-ckt4-3~bpo70+1 Version table: 3.16.7-ckt4-3~bpo70+1 0 499 http://ftp.nl.debian.org/debian/ wheezy-backports/main amd64 Packages
So I don't get the error. What am I doing wrong?
I'm trying to use puppet to upgrade all Wheezy machines to the backports kernel (a reboot streak is planned), which is why I want to solve it correctly. I could manually login to all servers to run:
sudo apt-get install -t wheezy-backports linux-image-amd64
Which works, but is not as convenient.
UPDATE
As requested:
/etc/apt/preferences.d$ cat linux-image Package: linux-image-* Pin: release a=wheezy-backports Pin-Priority: 1001 Package: * Pin: release a=wheezy-backports Pin-Priority: 499 /etc/apt/preferences.d$ sudo apt-get update Hit http://debian.kumina.nl wheezy-kumina Release.gpg . . . Reading package lists... Done /etc/apt/preferences.d$ sudo apt-get install linux-image-amd64 Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: linux-image-amd64 : Depends: linux-image-3.16.0-0.bpo.4-amd64 but it is not going to be installed E: Unable to correct problems, you have held broken packages. /etc/apt/preferences.d$ aptitude why-not linux-image-3.16.0-0.bpo.4-amd64 Unable to find a reason to remove linux-image-3.16.0-0.bpo.4-amd64.
-
Tim Stoop almost 8 yearsDoesn't work. Added the command output to my question.
-
Cedric Knight almost 8 yearsOK, thanks for trying. I'd be inclined to use the
aptitude
resolver interactively to identify the problem. Maybelinux-*
to include other dependencies? Is it feasible to addAPT::Default-Release "wheezy-backports";
to the configuration temporarily? -
Tim Stoop almost 8 yearsWe actually remove aptitude from all our servers, I had to install it to do the test. So that won't be feasible. Adding the config option temporarily is not feasible and, honestly, not really a nice solution :) I'm pretty sure this should be doable with apt-get without any hacks, just can't figure out how!
-
Tim Stoop almost 8 yearsWhat troubles in the future would you expect with this?
-
Sandokas almost 8 years- if debian has engineered its system to work one way I "suppose" they have their good reason ;) (see backports Instructions) - pinning the entire source you give a higher priority to a wide number of packages being recompiled from testing and unstable and not tested as the stable couterparts - the philosophy using
-t
is to let the package to install its dependencies .. "do strictly what you need" .. - its a while list approach: do what you are aware to do, when you need -
Tim Stoop almost 8 yearsThat's already explained in my question...
-
Tim Stoop almost 8 yearsWouldn't those be pulled in as well when I install it via 'apt-get -t wheezy-backports install linux-image-amd64'?
-
stimur almost 8 yearsIt will, if you enforce it with
-t wheezy-backports
. But this enforcement will also install all newer versions for not installed dependencies from backports as well, regardless of fact if stable versions are enough or not. If you need to install only limited and controlled number of packages from backports, you need to track the dependencies and manually pin them. If you don't care about that, sure go ahead and do full-t *backports
. -
Tim Stoop almost 8 yearsAh got it, you're right. I needed to fetch initramfs-tools from backports as well and then it can be done automatically. Thanks!
-
John Blackberry almost 7 yearsThis doesn't have enough upvotes