2010-08-18 81 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,所以它在內核升級後仍然存在。

相關問題