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について。