RPM 需要 kernel-devel 当前安装的内核包

RPM require kernel-devel package of currently installed kernel

我编写了一个 RPM 规范,其中要求 kernel-devel 包。但是,安装 any kernel-devel 包就可以满足。如何指定 RPM 需要 当前 运行 内核版本的 kernel-devel 软件包。

例如,我们的客户可能是 运行 3.10.0-514,但最新的是 3.10.0-693。如果您执行 "yum install -y kernel-devel",您将获得最新版本的 headers,满足我的 RPM 中的 "Requires" 行。我想确保安装的 headers 适用于 3.10.0-514。

你不能。多年来我一直在争论这个问题。

安装kernel-devel时也不能用triggers来监视,因为安装的时候还是不匹配运行内核版本

我使用的解决方案是将自定义脚本放入 /etc/init.d/(或 systemd 等价物),每次 OS 使用潜在的新内核启动时,它都会按需重新编译驱动程序。而且它足够聪明,可以识别源是否不存在,并告诉用户也升级它。