2010-08-18 82 views
0

当我安装我的应用程序时,我想复制/lib/modules/KERNEL_VERSION/extra中的一些文件。rpm spec call uname -r

问题当然是KERNEL_VERSION不固定。

我可以通过调用"uname -r"找到它,但是如何在rpm spec文件中执行此操作?

另外,如果有更好的方法,我会接受想法。

回答

2

你可以的uname -r结果插值到目录(这里猜测):

/lib/modules/`uname -r`/extra/ 
0

试图加载编译不同的内核内核模块时,这个问题的答案可能会离开你符号的不匹配。

要放置在编译时内核模块,这样做是桑德兰回答:

%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是解决这个确切问题的方法。

0

这不是一个好主意,因为你应该在客户端机器上编译内核模块,使用%triggerin,所以它在内核升级后仍然存在。

相关问题