在一个 RPM 中分发用户空间和内核组件

在一个 RPM 中分发用户空间和内核组件

我正在 Linux 上编写一个应用程序,它具有用户空间和内核组件(以可加载模块即 .ko 的形式)。我想将其作为 1 个包提供给用户,而不必发出 2 个命令 - 一个用于用户空间包安装,另一个用于内核模块安装。

是否可以仅分发 1 RPM,其中包括用户空间和内核部分?

提前致谢。

答案1

是的,RPM 并不关心包中有什么。

然而,它反对 RHEL/fedora/Alma/Rocky Linux 打包指导方针。你是否关心则是另一回事。

我想将其作为 1 个包提供给用户

错误的选择——用户必须拥有完全相同的内核版本。因此,他们总是希望 SRPM 能够在内核更改时重建您的软件包。突然之间,你迫使他们重建他们不需要重建的东西,因为用户空间组件不会改变。

一个用于用户空间包安装,另一个用于内核模块安装。

对于您的用户来说,这是一个不优雅的解决方案。相反,对于用户可能拥有的多个版本的内核,请使用 COPR 来托管您的软件包。然后,安装就是dnf install yourpackage,其中yourpackage依赖于另外两个包 ,yourpackage-kernel-moduleyourpackage-userspace。并且:您的用户获得更新通道(他们当然仍然可以手动下载软件包,但实际上很少有用户那)。

相关内容