次のコマンドを使用すると、インストールされているすべてのカーネルパッケージを一覧表示できます。
$ dpkg -l | grep linux-image
次のコマンドを使用すると、現在使用されているカーネルバージョンを取得できます。
$ uname -r
しかし、私の要件は、現在ロードされているカーネルに対応するDebianパッケージ名を端末に表示するだけです。
複数のパッケージ名が同じバージョンを持つ可能性があるため、前のコマンドを使用して特定のカーネルを一意に識別することは困難です。
それでは...現在カーネルのパッケージ名を取得する方法はありますか?
答え1
これを使用してください:
$ dpkg --get-selections | grep -o "^linux-image-$(uname -r)"
linux-image-3.13.0-32-generic
または
$ dpkg -l | grep -o "linux-image-$(uname -r)"
linux-image-3.13.0-32-generic
編集する:同じカーネルバージョンの複数のバージョンがある場合は、次のbash
スクリプトを実行してください。
#!/bin/bash
rel="$(uname -r)"
ver="$(uname -v)"
current="${rel%-*}.${ver:1:2}"
echo "$(dpkg -l | grep -Po "linux-image-${rel}(?=\s+${current})")"