Installer le noyau Debian Backports automatiquement

8

J'ai le jeu d'épingles suivant:

Package: linux-image-amd64
Pin: release a=wheezy-backports
Pin-Priority: 1001

Package: *
Pin: release a=wheezy-backports
Pin-Priority: 499

J'obtiens l'erreur suivante:

$ 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.

Les politiques semblent être correctes:

$ 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

Je n'ai donc pas d'erreur. Qu'est-ce que je fais mal?

J'essaie d'utiliser marionnette pour mettre à niveau toutes les machines Wheezy vers le noyau backports (une séquence de redémarrage est prévue), c'est pourquoi je veux le résoudre correctement. Je pouvais me connecter manuellement à tous les serveurs pour exécuter:

sudo apt-get install -t wheezy-backports linux-image-amd64

Ce qui fonctionne, mais n'est pas aussi pratique.

MISE À JOUR

Comme demandé:

/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
la source

Réponses:

3

Vérifiez de quoi dépend ce package et de quoi ces dépendances ont également besoin. Par exemple, je vois ceci pour ma machine:

#apt-cache  show linux-image-amd64
Package: linux-image-amd64
<snip>
Depends: linux-image-3.16.0-4-amd64

et

# 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

Vérifiez si les dépendances proviennent également des rétroportages.

stimuler
la source
C'est déjà expliqué dans ma question ...
Tim Stoop
1
Je ne vois rien à propos de l'épinglage de la version des dépendances dans votre question. vous devez configurer une priorité plus élevée pour les packages nécessaires pour linux-image-3.16.0-0.bpo.4-amd64. vérifier cela: Depends: kmod | module-init-tools, linux-base (>= 3~), debconf (>= 0.5) | debconf-2.0, initramfs-tools (>= 0.110~) | dracut (>= 0.40+1-1~) | linux-initramfs-tool. Si vous utilisez dracutpar exemple, Wheezy a une version 020-2 0, alors que les backports en ont 040+1-1 0. Dans ce cas, vous devez également augmenter la priorité du package Dracut à retirer des backports.
stimur
Ceux-ci ne seraient-ils pas également récupérés lorsque je l'installerais via «apt-get -t wheezy-backports install linux-image-amd64»?
Tim Stoop
1
Il le fera, si vous le respectez -t wheezy-backports. Mais cette application installera également toutes les versions plus récentes pour les dépendances non installées des backports, indépendamment du fait que les versions stables soient suffisantes ou non. Si vous devez installer uniquement un nombre limité et contrôlé de packages à partir de rétroportages, vous devez suivre les dépendances et les épingler manuellement. Si vous ne vous souciez pas de cela, allez-y et faites le plein -t *backports.
stimur
Ah, vous avez raison. J'avais également besoin de récupérer les outils initramfs dans les backports et cela peut être fait automatiquement. Merci!
Tim Stoop
5

sudo apt-get install -t wheezy-backports linux-image-amd64

ce n'est pas pratique je sais .. mais c'est la bonne façon de faire les choses sans avoir de problèmes à l'avenir (à mon humble avis bien sûr)

drAlberT
la source
À quels problèmes vous attendriez-vous à l'avenir?
Tim Stoop le
1
- si debian a conçu son système pour fonctionner dans un sens, je "suppose" qu'ils ont leur bonne raison;) (voir les instructions de rétroportage ) - en épinglant la source entière, vous donnez une priorité plus élevée à un grand nombre de paquets recompilés à partir de tests et instables et non testé en tant que partie stable - la philosophie qui -tconsiste à laisser le paquet installer ses dépendances .. "faire strictement ce dont vous avez besoin" .. - son approche par liste de temps: faites ce que vous savez faire, quand vous en avez besoin
drAlberT
2
Cela n'a pas assez de votes positifs
John Blackberry
1

Modifiez la ligne supérieure de vos préférences en

Package: linux-image-*

Courir

apt-get update

Essayez de réinstaller. Si vous obtenez toujours l'erreur, vérifiez

aptitude why-not linux-image-3.16.0-0.bpo.4-amd64
Cedric Knight
la source
Ça ne marche pas. Ajout de la sortie de commande à ma question.
Tim Stoop
OK, merci d'avoir essayé. Je serais enclin à utiliser le aptituderésolveur de manière interactive pour identifier le problème. Peut-être linux-*pour inclure d'autres dépendances? Est-il possible d'ajouter APT::Default-Release "wheezy-backports";temporairement à la configuration?
Cedric Knight
Nous supprimons en fait aptitude de tous nos serveurs, je devais l'installer pour faire le test. Ce ne sera donc pas faisable. Ajouter temporairement l'option de configuration n'est pas possible et, honnêtement, ce n'est pas vraiment une bonne solution :) Je suis presque sûr que cela devrait être faisable avec apt-get sans aucun piratage, je ne peux pas comprendre comment!
Tim Stoop