Qual é a lógica por trás das retenções nos pacotes do kernel?

Qual é a lógica por trás das retenções nos pacotes do kernel?

Espero que alguém com um pouco mais de conhecimento possa explicar algo sobre como fazer apt-get upgradeno Ubuntu 16.04 e posterior.

O comportamento que estou vendo é que apt-get upgradeàs vezes não instala novos pacotes de kernel e às vezes:

ou seja, da saída:

The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic linux-tools-generic

EUfazersaiba que fazer a dist-upgradeinstalará esses pacotes (portanto, não repita essa resposta :-). O que não sei é o que está controlando as retenções desses pacotes.
Às vezes, novos kernels são instalados ao fazer um apt-get upgradee às vezes os pacotes são retidos.

Essas retenções estão sendo implementadas pela própria Canonical e estão relacionadas a dependências de outros pacotes?

Responder1

O apt-get upgradecomando apenas atualiza os pacotes para suas versões mais recentes, não instala um novo pacote ou não remove nenhum para atualizar um pacote.

Ao atualizar seu Kernel, você está, na verdade, instalando um novo Kernel. O Ubuntu não atualizará um kernel, instalará um novo enquanto mantém o antigo.

Mas por que? por que instalamos uma nova versão do kernel em vez de atualizá-lo para a última versão? a resposta é por causa da estabilidade.

Você nunca sabe o que acontecerá após uma atualização do Kernel; pode haver falha na inicialização do sistema ou no funcionamento correto do hardware. Você deve sempre manter a versão antiga para que em caso de algum problema você ainda tenha uma máquina funcionando.

Nunca atualize seu kernel em funcionamento.

Diz Slackwareguia de atualização do sistema.


Mais informações

man apt-get:

sob nenhuma circunstância os pacotes atualmente instalados são removidos ou os pacotes ainda não instalados são recuperados e instalados. Novas versões de pacotes atualmente instalados que não podem ser atualizados sem alterar o status de instalação de outro pacote serão deixadas em sua versão atual.

No entanto, como você sabe, você também pode usar apt-get dist-upgradeou apt upgradeinstalar esses pacotes "mantidos".

$ apt-cache search linux-image-4.4.*-generic | tail -3
linux-image-4.4.0-75-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-77-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-78-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP

ver? estes são pacotes diferentes, portanto, uma nova instalação em vez de atualização.

informação relacionada