Blocco degli aggiornamenti del kernel con dpkg


16

Vorrei bloccare tutti gli aggiornamenti del kernel spediti dalla distribuzione a causa di una brutta cosa che mi è successa di recente. (Sono su un derivato Ubuntu 12.04 amd64.)

Mi piacerebbe bloccare tutti gli aggiornamenti al kernel installati del minore versione 3.2 alle linux-headers, linux-headers-generic, linux-image, e linux-image-extrapacchetti. Il problema che sto riscontrando è che tutti hanno una versione e se blocco una versione specifica, non si ottiene nulla perché verrà installata una nuova versione (ad esempio: se blocco linux-image-3.2.0-35, linux-image-3.2.0-36non è bloccato e potrebbe potenzialmente essere installato con un dist-upgradeda apt.)


Nota che questo non funziona più in Ubuntu 16.04. Devi inserire nella blacklist i pacchetti usando questa guida: help.ubuntu.com/lts/serverguide/automatic-updates.html
user199618

Risposte:


17

Quello che devi usare è una funzionalità di apt-get chiamata holding

Puoi farlo tramite Synaptic o Dpkg, Ecco come terrei il mio kernel usando il metodo dpkg.

Prima controlla il nome dell'immagine del kernel

dpkg -l | grep linux-image

uscita per me:

ii  linux-image-3.2.0-4-amd64              3.2.35-2                           amd64        Linux 3.2 for 64-bit PCs
ii  linux-image-amd64                      3.2+46                             amd64        Linux for 64-bit PCs (meta-package)

quindi dire a dpkg di contenere il metapacchetto (la versione generica senza numeri di versione)

echo linux-image-amd64 hold | sudo dpkg --set-selections

È quindi possibile verificare che ciò abbia funzionato tramite dpkg -l linux-image-amd64

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version            Architecture       Description
+++-==========================-==================-==================-==========================================================
hi  linux-image-amd64          3.2+46             amd64              Linux for 64-bit PCs (meta-package)

Notare "ciao" in basso, h significa trattenuto e i significa attualmente installato. Questo pacchetto è installato ma non verrà aggiornato.

Puoi invertire questo tramite

echo linux-image-amd64 install | sudo dpkg --set-selections

e di nuovo può controllare tramite dpkg -l linux-image-amd64

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version            Architecture       Description
+++-==========================-==================-==================-==========================================================
ii  linux-image-amd64          3.2+46             amd64              Linux for 64-bit PCs (meta-package)

Nota 'ii', il primo i indica che questo pacchetto è impostato per l'installazione e il secondo i indica che è attualmente installato. Questo pacchetto è installato e verrà aggiornato.

Per ulteriori informazioni su questi flag, consultare in man dpkgparticolare le sezioni "Stati di selezione dei pacchetti".


1
I miei nomi di immagini sono qui . Voglio mettere al bando "linux-image-generic"?
Naftuli Kay,

1
@TKKocheran yes; vuoi mettere un blocco sul metapacchetto, piuttosto che una versione specifica.
cjh

Non funziona - dpkg: avviso: pacchetto non in stato né database disponibile alla riga 1: linux-image-amd64 dpkg: avviso: trovati pacchetti sconosciuti; questo potrebbe significare che il database disponibile è obsoleto e deve essere aggiornato tramite un metodo frontend; si prega di consultare le FAQ < wiki.debian.org/Teams/Dpkg/FAQ >
Arturas M
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.