0

アプリをインストールするときに、にいくつかのファイルをコピーしたいと思います/lib/modules/KERNEL_VERSION/extra

もちろん問題はそれKERNEL_VERSIONが修正されていないということです。

を呼び出すことで見つけることができます"uname -r"が、rpmスペックファイルでこれを行うにはどうすればよいですか?

また、もっと良い方法があれば、私はアイデアを受け入れることができます。

4

3 に答える 3

2

結果をディレクトリに補間することができますuname -r(ここで推測します):

/lib/modules/`uname -r`/extra/
于 2010-08-18T12:48:39.593 に答える
0

この質問への答えは、別のカーネル用にコンパイルされたカーネルモジュールをロードしようとすると、シンボルの不一致が残る可能性があります。

コンパイル時にカーネルモジュールを配置するには、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-03T21:37:39.380 に答える
0

This isn't a good idea because you should compile kernel modules on the client machine with a %triggerin so it survives a kernel upgrade.

于 2012-12-04T02:00:36.863 に答える