Installa automaticamente il kernel Debian Backports


8

Ho i seguenti punti impostati:

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

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

Ottengo il seguente errore:

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

Le politiche sembrano essere corrette:

$ 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

Quindi non capisco l'errore. Che cosa sto facendo di sbagliato?

Sto cercando di usare Puppet per aggiornare tutte le macchine Wheezy al kernel backport (è prevista una sequenza di riavvio), motivo per cui voglio risolverlo correttamente. Potrei accedere manualmente a tutti i server per eseguire:

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

Che funziona, ma non è così conveniente.

AGGIORNARE

Come richiesto:

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

Risposte:


3

Verifica da cosa dipende quel pacchetto e di cosa hanno bisogno anche quelle dipendenze. Ad esempio, vedo questo per la mia macchina:

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

e

# 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

Controlla se le dipendenze sono prese anche dai backport.


Questo è già spiegato nella mia domanda ...
Tim Stoop,

1
Non vedo nulla sull'inserimento della versione delle dipendenze nella tua domanda. è necessario configurare una priorità più alta per i pacchetti necessari per linux-image-3.16.0-0.bpo.4-amd64. check this out: 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. Se si utilizza dracutad esempio, Wheezy ha una versione 020-2 0, mentre i backport hanno 040+1-1 0. In questo caso è necessario aumentare la priorità del pacchetto Dracut da prelevare anche dai backport.
stimola il

Non verrebbero inseriti anche quelli quando lo installo tramite 'apt-get -t wheezy-backports install linux-image-amd64'?
Tim Stoop,

1
Lo farà, se lo imponi con -t wheezy-backports. Ma questa applicazione installerà anche tutte le versioni più recenti anche per le dipendenze non installate dai backport, indipendentemente dal fatto che le versioni stabili siano sufficienti o meno. Se è necessario installare solo un numero limitato e controllato di pacchetti dai backport, è necessario tenere traccia delle dipendenze e bloccarle manualmente. Se non ti interessa, vai avanti e fai il pieno -t *backports.
stimola il

Ah capito, hai ragione. Avevo bisogno di recuperare initramfs-tools anche dai backport e quindi può essere fatto automaticamente. Grazie!
Tim Stoop,

5

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

non è conveniente lo so .. ma è il modo giusto di fare le cose senza problemi in futuro (IMHO ovviamente)


Quali problemi in futuro ti aspetteresti con questo?
Tim Stoop,

1
- se debian ha progettato il suo sistema per funzionare in un modo "suppongo" abbiano una buona ragione;) (vedi le istruzioni sui backport ) - bloccando l'intera fonte dai una priorità maggiore a un gran numero di pacchetti che vengono ricompilati da test e unstable e non testato come couterparts stabili - la filosofia che usa -tè quella di lasciare che il pacchetto installi le sue dipendenze .. "faccia rigorosamente ciò di cui hai bisogno" .. - è un po 'di approccio alla lista: fai quello che sei consapevole di fare, quando ti serve
drAlberT

2
Questo non ha abbastanza voti
John Blackberry,

1

Cambia la riga superiore nelle tue preferenze in

Package: linux-image-*

Correre

apt-get update

Prova a installare di nuovo. Se l'errore persiste, controllare

aptitude why-not linux-image-3.16.0-0.bpo.4-amd64

Non funziona Aggiunto l'output del comando alla mia domanda.
Tim Stoop,

OK, grazie per averci provato. Sarei propenso a usare il aptituderesolver in modo interattivo per identificare il problema. Forse linux-*per includere altre dipendenze? È possibile aggiungere APT::Default-Release "wheezy-backports";temporaneamente alla configurazione?
Cedric Knight,

In realtà abbiamo rimosso aptitude da tutti i nostri server, ho dovuto installarlo per fare il test. Quindi non sarà fattibile. Aggiungere temporaneamente l'opzione di configurazione non è fattibile e, onestamente, non è davvero una bella soluzione :) Sono abbastanza sicuro che questo dovrebbe essere fattibile con apt-get senza alcun hack, non riesco proprio a capire come!
Tim Stoop,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.