데비안: 설치된 파일의 패키지 이름 가져오기

데비안: 설치된 파일의 패키지 이름 가져오기

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 헤더를 설치하여 이에 대한 커널 모듈을 컴파일하고 싶습니다.적절한 캐시 검색 리눅스 헤더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)에 사용할 수 있는 적절한 커널 헤더가 없다는 것이었습니다.

마지막으로 저는 이 문제를 다음 네 단계로 해결했습니다.

  1. 다음을 통해 설치된 커널을 제거했습니다.적절한.
  2. 제거된 사용자 정의 커널:

    • /boot/vmlinuz*커널-버전*
    • /boot/initrd*커널-버전*
    • /boot/시스템-맵*커널-버전*
    • /부팅/구성-커널 버전
    • /lib/모듈/커널 버전/
    • 보다여기자세한 설명을 보려면.
  3. 설치된 커널그리고패키지 관리자가 기본적으로 제공하는 해당 헤더적절한(버전 3.2.0-4-486입니다).

  4. 다음을 통해 그럽 업데이트업데이트 그럽.

이제 필요한 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설치된 모든 커널에 대한 헤더를 얻어야 합니다

관련 정보