基本的な質問: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に依存する外部パッケージ、特にツリー外部カーネルモジュールを再構築する必要があることを意味します)。 Debian の規則に従って使用されるバージョンは、サフィックス .0 が付いた上流のカーネルバージョンであり、安定バージョン番号を無視し、ハイフンと ABI が変更されるたびに増加する単調増加数が続きます。したがって、4.8.0-2カーネルパッケージのすべてのバージョンはABIと互換性があり、ABIは4.8シリーズで一度改善されました。

このアプローチにはいくつかの利点があります。メタパッケージの更新(他のソースパッケージで維持されている)なしで互換性のあるカーネルアップグレードを自動的に取得し、linux-image-amd64すべてのカーネル更新に対してツリー外部モジュールを再コンパイルする必要はありません。

Debian では、GRUB は特定のカーネルバージョンを無視し、パッケージ名のみをリストします。これは理想的ではないかもしれませんが、2つの異なるABI準拠のカーネルをインストールすることができず、どちらかを選択する必要がないため、問題はありません。

Debian カーネルマニュアルでより多くの情報を見つけることができます。特にバージョンとABIについて

おすすめ記事