當我安裝我的應用程序時,我想複製/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
,所以它在內核升級後仍然存在。