Debian: インストールされたファイルのパッケージ名を取得する

Debian: インストールされたファイルのパッケージ名を取得する

Linux カーネル 3.11.1 を実行している PC に SSH 経由で接続しています。

root@alix:~# uname -r
3.11.1

この特定のファイルまたはカーネルバージョンをそれぞれどのパッケージがインストールしたかを確認するにはどうすればよいですか?

私は試した

root@alix:/boot# dpkg -S vmlinuz-3.11.1 
dpkg-query: no path found matching pattern *vmlinuz-3.11.1*

インストールされている他のカーネルバージョンは、dpkg -S:

root@alix:/boot# dpkg -S vmlinuz-3.2.23
linux-image-3.2.23-ath5kmod: /boot/vmlinuz-3.2.23-ath5kmod

目的: バージョン 3.11.1 に対応する Linux ヘッダーをインストールして、カーネル モジュールをコンパイルします。apt-cache 検索 Linux ヘッダー15 種類の異なるヘッダー バージョンがリストされていますが、3.11.1 のものはリストされていません。

どうもありがとうございます。

答え1

インストールされているすべてのパッケージを一覧表示し、カーネルパッケージdpkg -lの結果をフィルター処理できます。grep

dpkg -l | grep 'linux-image'
dpkg -l | grep 'linux-image' | grep '3.11'

実行中のカーネルのカーネル ヘッダー パッケージを見つけるには:

apt-cache search linux-headers-`uname -r`

答え2

当初の問題は、現在インストールされている Linux カーネル (3.11.1) に適切なカーネル ヘッダーがなかったことです。

最終的に、私は 4 つのステップでこの問題を解決しました。

  1. インストールされたカーネルを削除しましたapt-get
  2. 削除されたカスタムカーネル:

    • /boot/vmlinuz*カーネルバージョン*
    • /boot/initrd*カーネルバージョン*
    • /boot/System-map*カーネルバージョン*
    • /boot/config-カーネルバージョン
    • /lib/モジュール/カーネルバージョン/
    • 見るここ詳細な説明については。
  3. インストールされたカーネルそしてパッケージマネージャによってデフォルトで出荷される対応するヘッダーapt-get(バージョンは3.2.0-4-486です)。

  4. grubを更新するにはアップデート-grub

これで、必要な Linux カーネル モジュールをコンパイルして使用できるようになりました。正しい方向を示してくれた Creek に感謝します。:)

答え3

使用位置(1)からの命令見つけるパッケージ:

$ dlocate /boot/vmlinuz-*
linux-image-4.9.0-6-amd64: /boot/vmlinuz-4.9.0-6-amd64
linux-image-4.9.0-7-amd64: /boot/vmlinuz-4.9.0-7-amd64

dlocateファイル名を引数として受け取り、指定されたファイルを所有/提供するパッケージの名前を返します。

答え4

apt-get install linux-headersインストールされているすべてのカーネルのヘッ​​ダーを取得できるはずです

関連情報