Pergunta básica: Por que o linux-image não corresponde à versão instalada?

0

Estou com dificuldades em encontrar uma resposta sobre isso nos Googles. Estou usando o Debian Stretch (que eu prometo descaradamente como sendo uma ótima experiência).

No entanto, notei que meu kernel estava atualizando com comandos básicos apt upgrade . Essas atualizações não foram refletidas na imagem linux obtida com apt search linux-image ou dpkg --list | grep linux-image

Exemplo:

$ apt search linux-image
  linux-image-4.8.0-2-amd64/now 4.8.15-2 amd64 [installed,local]
  Header files for Linux 4.8.0-2-amd64

e

$ dpkg --list | grep linux-image
  ii  linux-image-4.8.0-2-amd64             4.8.15-2 

Também linux-headers - eles são 100% análogos um ao outro. Exemplo:

$ apt search linux-headers
  linux-headers-4.8.0-2-amd64/now 4.8.15-2 amd64 [installed,local]
  Header files for Linux 4.8.0-2-amd64

e

$ dpkg --list | grep linux-headers
  ii  linux-headers-4.8.0-2-amd64           4.8.15-2    

O mesmo vale para o grub, ele não atualiza o nome da imagem, mesmo quando usa update-grub . Eu não estou assumindo esse bug, mas parece um comportamento padrão estranho. Qual é o pensamento por trás das versões de imagem e cabeçalho instaladas que não estão refletidas em seus nomes?

    
por AveryFreeman 11.02.2017 / 16:23

1 resposta

4

A versão do kernel armazenada no nome do pacote, por exemplo 4.8.0-2 nos pacotes linux-image-4.8.0-2-amd64 e linux-headers-4.8.0-2-amd64 , reflete o kernel ABI: ela só muda quando a ABI muda (o que significa que pacotes externos dependendo do kernel ABI, em particular módulos de kernel fora da árvore, precisam ser reconstruídos). Por convenção no Debian, a versão usada é a versão do kernel upstream, com um sufixo .0, ignorando o número da versão estável, seguido por um hífen e um número crescente monotonicamente que é atacado sempre que a ABI é alterada. Assim, todas as versões dos pacotes do kernel 4.8.0-2 são compatíveis com ABI, e o ABI foi atingido uma vez na série 4.8.

Esta abordagem tem algumas vantagens: você automaticamente obtém atualizações de kernel compatíveis, sem precisar de uma atualização de meta-pacote ( linux-image-amd64 , que é mantida em outro pacote de origem); e você não precisa recompilar módulos fora da árvore para cada atualização do kernel.

No Debian, o GRUB ignora a versão específica do kernel, apenas lista o nome do pacote. Talvez isso seja menos que ideal, mas não importa muito, porque você não pode ter dois kernels diferentes compatíveis com ABI instalados, então você não precisa ser capaz de escolher entre eles.

Você encontrará mais informações no manual do kernel do Debian, em particular a seção sobre versões e ABIs .

    
por 11.02.2017 / 17:25