uname -r
我系统上的输出是4.19.0-kali1-amd64
. 我注意到在存储库列表中有多个,linux-image-4.19.0-kali#
每个都有不同的编号,从 kali1 到 kali5。
这个数字有什么意义?为什么其中一些数字没有所有版本包?可以换号吗?
有关更多上下文:最近对我的 vmware-workstation 的更新正在linux-headers-4.19.0-kali1-amd64
我的系统上寻找,但在存储库中找不到这些。我可以找到 kali3、4 和 5 的这些图像。
它是从 Debian 复制的。在 Debian 上,数字的变化,例如从4.19.0-4-amd64到4.19.0-5-amd64意味着打包者声明(内部内核)ABI 发生了变化,例如需要重新编译外部模块。当没有完成 ABI 更改时,内核更新将在以前的位置完成,并且其所有模块都将更新到较新的版本。虽然需要重新启动才能使用新内核,但即使是以前未加载的模块也将在新版本中可用。由于 ABI 保持不变,因此外部模块不会有任何差异。
因此,假设您有需要像任何 DKMS 模块一样从源代码构建的模块nat-rtsp-dkms 。如果对内核的升级被认为不会破坏 ABI,则不必重建此模块。如果现在升级被认为破坏了 ABI,则名称的更改(由元包linux-image-amd64的依赖项暗示)将安装一个新的内核版本,这将触发该外部模块的重新编译。这同样适用于 VMware 的外部内核模块。
从最近的linux-image-amd64更新日志:
取决于实际的 linux-image-4.19.0-kali5-amd64,它的变更日志记录 ABI 的变化,有时会解释原因。以下是最后一部分对 ABI 2 更改的一些摘录:
[...]
[...]
[...]
[...]
请注意,linux-header-*包来自同一来源,因此与linux-image-*包同步。您通常必须替换相关的linux-headers-*包以使其与目标内核匹配,才能成功构建外部模块。对于未打包的外部模块(其中一些,可能是 VMware 的,只查看当前运行的内核而不是目标内核),这仍然适用。
如果再也找不到 Kali 包(由于snapshot.debian.org而在 Debian 上不会真正发生),你可以将内核升级到一个通用版本,其中头文件和内核都可用:你应该安装两者linux-image-4.19.0-kali5-amd64和linux-headers-4.19.0-kali5-amd64(并且可能在构建之前重新启动,让 VMware 满意)。如果您构建自己的内核,请不要忘记同时构建相关的linux-headers-包。
如果尽管如此,在重新启动到较新的内核后,VMware 确实坚持使用特定的 kali1 而不是与正在运行的内核匹配的那个,那么你就很不走运了,必须等待 VMware 的更新或找到解决方法。