跨内核版本管理预构建的内核模块

跨内核版本管理预构建的内核模块

请在尝试回答之前阅读完整的问题,这种情况有点奇怪。

我支持很多服务器硬件测试功能,并且基本上最终管理了多个内部 Linux 发行版,支持各种内核(以及 CPU 架构)。这些服务器是从最小的测试映像进行 PXE/iPXE 启动的(以节省服务器负载和启动时间),如果我在其中包含 make 工具和 gcc,这些映像的大小将增加一倍。

诀窍是这样的。在启动之前,我不知道任何给定系统中会有什么,这意味着我需要在系统启动后动态下载并安装内核模块。这些内核模块显然需要 a) 预先构建,b) 与正在运行的内核相匹配。 (我们预计有数十个。)

我的问题是:管理这些内核模块的适当方法是什么?我本质上需要像指定架构一样指定内核,但据我所知,yum(在 Centos 7 上)无法说“我需要为 X 内核构建的包”。我不太熟悉 apt-get (Ubuntu),但我也不相信它有办法做到这一点。有没有办法为此构建一个并行包管理系统? (这本质上是管理元发行版......)

答案1

谈论 Debian 派生的发行版:

  1. 他们可以区分同一存储库中的多种架构(包括 32 位与 64 位)。
  2. 内核模块存储在特定于内核的树中/lib/modules/$(uname -r)/,因此您可以构建一个包,其中包含适用于所有可能的不同内核版本的模块,并且将使用正确的版本。

这足以作为起点吗?

相关内容