我已经看到了一些关于 linux-headers 包的问题,但找不到任何可以解决我的具体问题的问题。
我在 Kubuntu 16.04 上,我收到以下错误(来自 VirtualBox):
请安装与当前内核匹配的 Linux 内核“头”文件,以便为系统添加新的硬件支持。包含标头的分发包可能是:
linux-headers-generic linux-headers-4.13.0-43-generic
我很惊讶地发现它linux-headers-generic
没有安装,尽管我不确定它是否应该默认存在。
无论如何,虽然内核是 4.13.0-43-generic,但相应的头文件确实没有安装:
$ uname -r
4.13.0-43-generic
$ aptitude search linux-headers | grep ^i
id linux-headers-4.13.0-32 - Header files related to Linux kernel versi
id linux-headers-4.13.0-32-generic - Linux kernel headers for version 4.13.0 on
i A linux-headers-4.13.0-37 - Header files related to Linux kernel versi
i A linux-headers-4.13.0-37-generic - Linux kernel headers for version 4.13.0 on
i A linux-headers-4.13.0-38 - Header files related to Linux kernel versi
i A linux-headers-4.13.0-38-generic - Linux kernel headers for version 4.13.0 on
i A linux-headers-4.13.0-39 - Header files related to Linux kernel versi
i A linux-headers-4.13.0-39-generic - Linux kernel headers for version 4.13.0 on
“linux-headers-generic
将始终依赖于可用的最新通用内核头文件”,所以我认为安装它会安装最新的包(在这种情况下,linux-headers-4.13.0-43-generic
根据 VirtualBox 的要求)并保持它们是最新的。
但是,如果我尝试这样做,我会被要求安装看起来很旧的软件包:
$ sudo aptitude install linux-headers-generic
The following NEW packages will be installed:
linux-headers-4.4.0-127{a} linux-headers-4.4.0-127-generic{a} linux-headers-generic
0 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 10.8 MB of archives. After unpacking 78.4 MB will be used.
还有一个名为 的包linux-headers-generic-lts-xenial
,但它或多或少做同样的事情。
所以,我的问题:
- 默认情况下是否应该存在任何一个 linux-headers-generic 包?哪一个?
- 我需要在我的情况下安装它们中的任何一个吗?
- 如果我
linux-headers-4.13.0-43-generic
直接安装必要的包,升级内核时会发生什么?
不,也不是。
从内核版本来看,您似乎正在使用硬件启用堆栈(HWE) 内核。所以你应该为这些安装头文件:
linux-headers-generic-hwe-16.04
,应该依赖于你的 HWE 内核(4.13)的正确头文件包的元包。您必须再次手动安装相关的标头。最好使用
linux-headers-generic-hwe-16.04
.最简单的解决方案是安装缺少的软件包:
我的系统已经安装了你缺少的东西。为什么他们失踪我不能说。
linux-headers-generic
最新版本的通知确实是4.4.0.127.133
. 虽然 Linux Kernel 4.4 于 2015 年问世,但它是一个 5 或 6 年的 LTS(长期支持)内核(具体记不清了),目前更新号为 127。因此更新号最终将增长到 300 左右.无论您如何看待它,您都需要咬紧牙关并使用以下方法安装缺少的标头:
2018 年 6 月 11 日更新。
4.4.0.127.133
不再是最新的标头版本。我跑了sudo apt upgrade
,后来又跑了sudo apt autoremove
。当精神分裂症软件被删除时,我收到了一些错误消息,127
并告诉我添加127
标题以解决问题:不过没有真正的问题,截至 2018 年 6 月 11 日,最新
linux-headers-generic
版本是:4.4.0.128.134
.我的同事使用的是 18.10 和 4.18.0.17 内核。
sudo apt-get install
来自官方的相应 linux-headers 说找不到包。我终于从packages.ubuntu.com找到并下载了特定文件:
http://mirrors.kernel.org/ubuntu/pool/main/l/linux-hwe/linux-headers-4.18.0-17_4.18.0-17.18~18.04.1_all.deb
http://mirrors.kernel.org /ubuntu/pool/main/l/linux-hwe/linux-headers-4.18.0-17-generic_4.18.0-17.18~18.04.1_amd64.deb
一旦你安装了头文件。
apt-get purge
那么apt-get install
virtualbox 包应该可以工作。