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. 以下でインストールされたカーネルを削除しました。適切
  2. 削除されたカスタムカーネル:

    • /boot/vmlinuz*カーネルバージョン*
    • /boot/initrd*カーネルバージョン*
    • /boot/system マップ*カーネルバージョン*
    • /スタート/構成-カーネルバージョン
    • /lib/モジュール/カーネルバージョン/
    • バラよりここ詳細な説明。
  3. インストールされたカーネルそしてパッケージマネージャがデフォルトで送信する対応するヘッダ適切(バージョン3.2.0-4-486)。

  4. グラップを更新してグラップアップデート

これで、必要なLinuxカーネルモジュールをコンパイルして使用できます。正しい方向を教えてくれたクリックに感謝します。 :)

答え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インストールされているすべてのカーネルのヘッ​​ダーを提供する必要があります。

関連情報