Bloqueio de atualizações do kernel com dpkg

16

Gostaria de bloquear todas as atualizações do kernel enviadas pela distribuição devido a uma coisa desagradável que aconteceu recentemente com mim. (Eu estou em um derivativo Ubuntu 12.04 amd64.)

Gostaria de bloquear todas as atualizações para os kernels instalados da versão secundária 3.2 nos pacotes linux-headers , linux-headers-generic , linux-image e linux-image-extra . O problema que estou encontrando é que todos eles têm uma versão e se eu bloquear uma versão específica, nada é ganho porque uma nova versão será instalada (por exemplo: se eu bloquear linux-image-3.2.0-35 , linux-image-3.2.0-36 não está bloqueado e ainda pode potencialmente ser instalado com um dist-upgrade de apt .)

    
por Naftuli Kay 31.01.2013 / 23:01

1 resposta

17

O que você precisa usar é um recurso do apt-get chamado segurando

Você pode fazer isso via Synaptic ou Dpkg, Aqui está como eu seguraria meu kernel usando o método dpkg.

Primeiro, verifique o nome da imagem do seu kernel

dpkg -l | grep linux-image

saída para mim:

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)

depois diga ao dpkg para manter o meta-pacote (a versão genérica sem nenhum número de versão)

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

Você pode verificar isso funcionou via 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)

Observe o 'oi' na parte inferior, h significa suspenso e significa que eu estou atualmente instalado. Este pacote está instalado, mas não será atualizado.

Você pode reverter isso via

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

e novamente pode verificar via 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)

Aviso 'ii', o primeiro i significa que este pacote está configurado para ser instalado e o segundo i significa que ele está atualmente instalado. Este pacote está instalado e o será atualizado.

Para obter mais informações sobre esses sinalizadores, consulte man dpkg especificamente as seções "estados de seleção de pacotes".

    
por 31.01.2013 / 23:23

Tags