当我安装我的应用程序时,我想在/lib/modules/KERNEL_VERSION/extra中复制一些文件。
当然,问题是KERNEL_VERSION并没有被修复。
我可以通过调用"uname -r"来找到它,但是如何在rpm规范文件中找到它呢?
此外,如果有更好的方法,我愿意接受想法。
发布于 2010-08-18 20:48:40
您可以将uname -r的结果插入到目录中(此处猜测):
/lib/modules/`uname -r`/extra/发布于 2012-12-04 05:37:39
当您试图加载为不同内核编译的内核模块时,这个问题的答案可能会让您遇到符号不匹配的问题。
要在编译时放置内核模块,请按照Delan回答的方式进行操作:
%files
/lib/modules/`uname -r`/extra/*.ko要将以前编译的内核模块放在当前运行的内核的路径中,您必须在%post部分中执行一些棘手的操作:
%post
cp /lib/modules/known/location/*.ko /lib/modules/`uname -r`/extra/*.ko
%postun
rm /lib/modules/... # hopefully they have not upgraded their current kernel..
%files
/lib/modules/known/location/*.ko它将安装可能无法加载到正在运行的内核上的内核模块。通常,源RPM就是这个问题的解决方案。
发布于 2012-12-04 10:00:37
这不是一个好主意,因为您应该使用%triggerin在客户机上编译内核模块,这样它才能在内核升级后存活下来。
https://stackoverflow.com/questions/3512197
复制相似问题