Debian: Paketnamen für installierte Datei abrufen

Debian: Paketnamen für installierte Datei abrufen

Ich bin über SSH mit einem PC verbunden, auf dem Linux-Kernel 3.11.1 läuft:

root@alix:~# uname -r
3.11.1

wie kann ich herausfinden, welches Paket diese bestimmte Datei bzw. Kernelversion installiert hat?

Ich habe es versucht

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

Andere installierte Kernel-Versionen finden Sie unterdpkg -S:

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

Mein Anliegen: Ich möchte die entsprechenden Linux-Header für die Version 3.11.1 installieren um ein Kernelmodul dafür zu kompilieren.Apt-Cache-Suche Linux-Headerlistet 15 verschiedene Header-Versionen auf, aber nicht die für 3.11.1.

Vielen Dank.

Antwort1

Sie können alle installierten Pakete mit auflisten und die Ergebnisse mit für die Kernel-Pakete dpkg -lfiltern.grep

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

So finden Sie das Kernel-Header-Paket für Ihren laufenden Kernel:

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

Antwort2

Mein ursprüngliches Problem war, dass für den aktuell installierten Linux-Kernel (3.11.1) keine passenden Kernel-Header verfügbar waren.

Schließlich habe ich dieses Problem in vier Schritten gelöst:

  1. Die Kernel wurden entfernt, die überapt-get.
  2. Benutzerdefinierte Kernel entfernt:

    • /boot/vmlinuz*KERNEL-VERSION*
    • /boot/initrd*KERNEL-VERSION*
    • /boot/System-map*KERNEL-VERSION*
    • /boot/config-KERNELVERSION
    • /lib/Module/KERNELVERSION/
    • SehenHierfür eine detaillierte Beschreibung.
  3. Installierter KernelUndentsprechende Header, die standardmäßig vom Paketmanager mitgeliefert werdenapt-get(es ist Version 3.2.0-4-486).

  4. Aktualisieren Sie Grub überUpdate-Grub.

Jetzt kann ich das erforderliche Linux-Kernelmodul kompilieren und verwenden. Danke, Creek, für den Hinweis. :)

Antwort3

Verwendendlocate(1)Befehl vonlokalisierenPaket:

$ 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

dlocateverwendet den Dateinamen als Argument und gibt den Namen des Pakets zurück, das die angegebene Datei besitzt/bereitstellt.

Antwort4

apt-get install linux-headerssollte Ihnen die Header für alle installierten Kernel liefern

verwandte Informationen