기본 질문: linux-image가 설치된 버전과 일치하지 않는 이유는 무엇입니까?

기본 질문: linux-image가 설치된 버전과 일치하지 않는 이유는 무엇입니까?

Google에서 이 질문에 대한 답변을 찾는 데 어려움을 겪고 있습니다. 저는 Debian Stretch를 사용하고 있습니다(훌륭한 경험이라고 뻔뻔하게 홍보하고 있습니다).

apt upgrade그러나 기본 명령을 사용하여 커널이 업그레이드되고 있음을 발견했습니다 . 이러한 업그레이드는 apt search linux-image사용되거나 획득된 Linux 이미지 에 반영되지 않습니다 .dpkg --list | grep linux-image

예:

$ 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

그리고

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

그리고 linux-headers- 그들은 서로 100% 유사합니다. 예:

$ 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

그리고

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

. update-grub​설치된 이미지와 헤더 버전이 이름에 반영되지 않는 이유는 무엇입니까?

답변1

패키지 이름에 저장된 커널 버전,예를 들어linux-image-4.8.0-2-amd64패키지의 4.8.0-2는 linux-headers-4.8.0-2-amd64커널 ABI를 반영합니다. 이는 ABI가 변경될 때만 변경됩니다(즉, 커널 ABI에 의존하는 외부 패키지, 특히 트리 외부 커널 모듈을 다시 빌드해야 함을 의미함). 데비안 규칙에 따라 사용되는 버전은 접미사 .0이 붙는 업스트림 커널 버전이며, 안정 버전 번호를 무시하고 하이픈과 ABI가 변경될 때마다 증가하는 단조롭게 증가하는 숫자가 뒤따릅니다. 따라서 4.8.0-2 커널 패키지의 모든 버전은 ABI와 호환되며 ABI는 4.8 시리즈에서 한 번 개선되었습니다.

이 접근 방식에는 여러 가지 장점이 있습니다. 메타패키지 업데이트(다른 소스 패키지에서 유지 관리됨) 없이 호환 가능한 커널 업그레이드를 자동으로 얻을 수 linux-image-amd64있으며 모든 커널 업데이트에 대해 트리 외부 모듈을 다시 컴파일할 필요가 없습니다.

데비안에서 GRUB는 특정 커널 버전을 무시하고 패키지 이름만 나열합니다. 이는 이상적이지 않을 수 있지만 두 개의 서로 다른 ABI 호환 커널을 설치할 수 없고 둘 중 하나를 선택할 필요가 없기 때문에 문제가 되지 않습니다.

데비안 커널 매뉴얼에서 더 많은 정보를 찾을 수 있습니다. 특히버전 및 ABI 정보.

관련 정보