Installieren Sie den Debian Backports-Kernel automatisch

8

Ich habe die folgenden Pinnings festgelegt:

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

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

Ich erhalte folgenden Fehler:

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

Die Richtlinien scheinen korrekt zu sein:

$ 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

Ich verstehe den Fehler also nicht. Was mache ich falsch?

Ich versuche, mit Puppet alle Wheezy-Maschinen auf den Backports-Kernel zu aktualisieren (ein Neustart ist geplant), weshalb ich ihn korrekt lösen möchte. Ich konnte mich manuell bei allen Servern anmelden, um Folgendes auszuführen:

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

Was funktioniert, ist aber nicht so bequem.

AKTUALISIEREN

Wie gewünscht:

/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
quelle

Antworten:

3

Überprüfen Sie, wovon dieses Paket abhängt und was diese Abhängigkeiten ebenfalls benötigen. Zum Beispiel sehe ich das für meine Maschine:

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

und

# 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

Überprüfen Sie, ob Abhängigkeiten auch von Backports übernommen werden.

stimulieren
quelle
Das ist bereits in meiner Frage erklärt ...
Tim Stoop
1
Ich sehe in Ihrer Frage nichts über das Feststecken der Abhängigkeitsversion. Sie müssen eine höhere Priorität für Pakete konfigurieren, die für linux-image-3.16.0-0.bpo.4-amd64 benötigt werden. Schau dir das an : 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. Wenn Sie dracutzum Beispiel verwenden, hat Wheezy eine Version 020-2 0, während Backports haben 040+1-1 0. In diesem Fall müssen Sie die Priorität des Dracut-Pakets erhöhen, damit es auch aus Backports entnommen werden kann.
Stimur
Würden diese nicht auch eingezogen, wenn ich sie über 'apt-get -t wheezy-backports install linux-image-amd64' installiere?
Tim Stoop
1
Es wird, wenn Sie es mit erzwingen -t wheezy-backports. Diese Durchsetzung installiert jedoch auch alle neueren Versionen für nicht installierte Abhängigkeiten von Backports, unabhängig davon, ob stabile Versionen ausreichen oder nicht. Wenn Sie nur eine begrenzte und kontrollierte Anzahl von Paketen aus Backports installieren müssen, müssen Sie die Abhängigkeiten verfolgen und manuell anheften. Wenn Sie sich nicht darum kümmern, machen Sie es einfach voll -t *backports.
Stimur
Ich habe es verstanden, du hast recht. Ich musste auch initramfs-tools aus Backports holen und dann kann es automatisch gemacht werden. Vielen Dank!
Tim Stoop
5

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

Ich weiß, es ist nicht bequem, aber es ist der richtige Weg, um Dinge zu tun, ohne in Zukunft Probleme zu haben (IMHO natürlich).

drAlberT
quelle
Welche Probleme würden Sie in Zukunft damit erwarten?
Tim Stoop
1
- Wenn Debian sein System so entwickelt hat, dass es auf eine Weise funktioniert, "nehme ich an", haben sie ihren guten Grund;) (siehe Backports-Anweisungen ) - Wenn Sie die gesamte Quelle fixieren, geben Sie einer großen Anzahl von Paketen, die aus Tests und instabilen und neu instabilen Paketen neu kompiliert werden, eine höhere Priorität Nicht als stabile Couterparts getestet - die Philosophie -tbesteht darin, das Paket seine Abhängigkeiten installieren zu lassen. "Mach genau das, was du brauchst". - Es ist ein Ansatz für eine Weile: Mach, was du weißt, wenn du brauchst
drAlberT
2
Dies hat nicht genug Upvotes
John Blackberry
1

Ändern Sie die oberste Zeile in Ihren Einstellungen in

Package: linux-image-*

Lauf

apt-get update

Versuchen Sie erneut zu installieren. Wenn Sie immer noch den Fehler erhalten, überprüfen Sie

aptitude why-not linux-image-3.16.0-0.bpo.4-amd64
Cedric Knight
quelle
Funktioniert nicht Die Befehlsausgabe wurde zu meiner Frage hinzugefügt.
Tim Stoop
OK, danke, dass du es versucht hast. Ich würde gerne den aptitudeResolver interaktiv verwenden, um das Problem zu identifizieren. Vielleicht linux-*um andere Abhängigkeiten aufzunehmen? Ist es möglich APT::Default-Release "wheezy-backports";, die Konfiguration vorübergehend zu ergänzen ?
Cedric Knight
Wir entfernen tatsächlich die Eignung von allen unseren Servern. Ich musste sie installieren, um den Test durchzuführen. Das wird also nicht machbar sein. Das vorübergehende Hinzufügen der Konfigurationsoption ist nicht möglich und ehrlich gesagt keine wirklich gute Lösung :) Ich bin mir ziemlich sicher, dass dies mit apt-get ohne Hacks machbar sein sollte, kann aber nicht herausfinden, wie!
Tim Stoop