
我透過 SSH 連接到運行 Linux 核心 3.11.1 的 PC:
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-headers列出了 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) 的合適的核心頭檔。
最後我分四步驟解決了這個問題:
- 刪除了透過安裝的內核apt-get。
刪除了自訂內核:
- /boot/vmlinuz*核心版本*
- /boot/initrd*核心版本*
- /boot/系統映射*核心版本*
- /啟動/配置-核心版本
- /lib/模組/核心版本/
- 看這裡詳細說明。
安裝的內核和包管理器預設發送的相應標頭apt-get(版本 3.2.0-4-486)。
- 透過更新 grub更新 grub。
現在,我可以編譯並使用所需的 Linux 核心模組了。感謝克里克為我指明了正確的方向。 :)
答案3
答案4
apt-get install linux-headers
應該為您提供所有已安裝核心的標頭