![跨内核版本管理预构建的内核模块](https://linux22.com/image/81813/%E8%B7%A8%E5%86%85%E6%A0%B8%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E9%A2%84%E6%9E%84%E5%BB%BA%E7%9A%84%E5%86%85%E6%A0%B8%E6%A8%A1%E5%9D%97.png)
请在尝试回答之前阅读完整的问题,这种情况有点奇怪。
我支持很多服务器硬件测试功能,并且基本上最终管理了多个内部 Linux 发行版,支持各种内核(以及 CPU 架构)。这些服务器是从最小的测试映像进行 PXE/iPXE 启动的(以节省服务器负载和启动时间),如果我在其中包含 make 工具和 gcc,这些映像的大小将增加一倍。
诀窍是这样的。在启动之前,我不知道任何给定系统中会有什么,这意味着我需要在系统启动后动态下载并安装内核模块。这些内核模块显然需要 a) 预先构建,b) 与正在运行的内核相匹配。 (我们预计有数十个。)
我的问题是:管理这些内核模块的适当方法是什么?我本质上需要像指定架构一样指定内核,但据我所知,yum(在 Centos 7 上)无法说“我需要为 X 内核构建的包”。我不太熟悉 apt-get (Ubuntu),但我也不相信它有办法做到这一点。有没有办法为此构建一个并行包管理系统? (这本质上是管理元发行版......)
答案1
谈论 Debian 派生的发行版:
- 他们可以区分同一存储库中的多种架构(包括 32 位与 64 位)。
- 内核模块存储在特定于内核的树中
/lib/modules/$(uname -r)/
,因此您可以构建一个包,其中包含适用于所有可能的不同内核版本的模块,并且将使用正确的版本。
这足以作为起点吗?