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.
debian
apt
debian-wheezy
package-management
pinning
Tim Stoop
la source
la source
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 utilisezdracut
par exemple, Wheezy a une version020-2 0
, alors que les backports en ont040+1-1 0
. Dans ce cas, vous devez également augmenter la priorité du package Dracut à retirer des backports.-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
.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)
la source
-t
consiste à 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 besoinModifiez la ligne supérieure de vos préférences en
Courir
Essayez de réinstaller. Si vous obtenez toujours l'erreur, vérifiez
la source
aptitude
résolveur de manière interactive pour identifier le problème. Peut-êtrelinux-*
pour inclure d'autres dépendances? Est-il possible d'ajouterAPT::Default-Release "wheezy-backports";
temporairement à la configuration?