当我安装我的应用程序时,我想复制/lib/modules/KERNEL_VERSION/extra
中的一些文件。rpm spec call uname -r
问题当然是KERNEL_VERSION
不固定。
我可以通过调用"uname -r"
找到它,但是如何在rpm spec文件中执行此操作?
另外,如果有更好的方法,我会接受想法。
当我安装我的应用程序时,我想复制/lib/modules/KERNEL_VERSION/extra
中的一些文件。rpm spec call uname -r
问题当然是KERNEL_VERSION
不固定。
我可以通过调用"uname -r"
找到它,但是如何在rpm spec文件中执行此操作?
另外,如果有更好的方法,我会接受想法。
你可以的uname -r
结果插值到目录(这里猜测):
/lib/modules/`uname -r`/extra/
试图加载编译不同的内核内核模块时,这个问题的答案可能会离开你符号的不匹配。
要放置在编译时内核模块,这样做是桑德兰回答:
%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是解决这个确切问题的方法。
这不是一个好主意,因为你应该在客户端机器上编译内核模块,使用%triggerin
,所以它在内核升级后仍然存在。