我正在 Linux 上编写一个应用程序,它具有用户空间和内核组件(以可加载模块即 .ko 的形式)。我想将其作为 1 个包提供给用户,而不必发出 2 个命令 - 一个用于用户空间包安装,另一个用于内核模块安装。
是否可以仅分发 1 RPM,其中包括用户空间和内核部分?
提前致谢。
答案1
是的,RPM 并不关心包中有什么。
然而,它反对 RHEL/fedora/Alma/Rocky Linux 打包指导方针。你是否关心则是另一回事。
我想将其作为 1 个包提供给用户
错误的选择——用户必须拥有完全相同的内核版本。因此,他们总是希望 SRPM 能够在内核更改时重建您的软件包。突然之间,你迫使他们重建他们不需要重建的东西,因为用户空间组件不会改变。
一个用于用户空间包安装,另一个用于内核模块安装。
对于您的用户来说,这是一个不优雅的解决方案。相反,对于用户可能拥有的多个版本的内核,请使用 COPR 来托管您的软件包。然后,安装就是dnf install yourpackage
,其中yourpackage
依赖于另外两个包 ,yourpackage-kernel-module
和yourpackage-userspace
。并且:您的用户获得更新通道(他们当然仍然可以手动下载软件包,但实际上很少有用户想那)。