Em uma distribuição Debian Stretch, se eu executar uname -a
, obtenho:
Linux index 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux
Se eu executar dpkg -s linux-image-amd64 | grep Version
, obtenho:
Version: 4.9+80+deb9u6
Três versões diferentes do kernel são impressas pelos comandos acima:
- 4.9.0-8
- 4.9.144-3.1
- 4,9+80+deb9u6
Minha pergunta é: quais são essas diferentes versões e qual é o seu significado?
“80+deb9u6” é a versão do pacote
linux-latest
fonte ; isso cria meta-pacotes que extraem o pacote de kernel atual para cada plataforma, por exemplo,linux-image-amd64
que você tem, e são versionados com a versão de kernel base, resultando em 4.9+80+deb9u6.“4.9.0-8” é a versão ABI do kernel; ele aparece em nomes de pacotes de kernels específicos, por exemplo
linux-image-4.9.0-8-amd64
. A versão representa o número base da série do kernel e um número que é aumentado toda vez que a ABI do kernel muda de maneira incompatível — em termos que importam para os usuários, sempre que módulos fora da árvore precisam ser recompilados.“4.9.144-3.1” é a versão do pacote do kernel. Isso segue o esquema de versão padrão do Debian: 4.9.144 é a versão upstream do kernel, que você pode combinar com versões upstream do kernel , e 3.1 é a versão do empacotamento. O primeiro pacote de uma determinada versão upstream normalmente recebe a versão 1 do empacotamento, então toda vez que um novo pacote é carregado (sem alterar o upstream correspondente), a versão do empacotamento é incrementada. Você pode ver os detalhes do que mudou em cada versão no changelog específico do Debian .
Tudo isso se combina para fornecer vários recursos úteis para os usuários finais:
linux-image-amd64
, e ter certeza de que sempre têm o pacote de kernel mais recente disponível - atualmente o meta-pacote é a versão 4.9+80+deb9u6, que puxalinux-image-4.9.0-8-...
, e quando a versão do kernel ou ABI mudança de versão, um novo meta-pacote será carregado;