вызов спецификации rpm uname -r - PullRequest
0 голосов
/ 18 августа 2010

Когда я устанавливаю свое приложение, я хотел бы скопировать некоторые файлы в /lib/modules/KERNEL_VERSION/extra.

Проблема, конечно, в том, что KERNEL_VERSION не исправлено.

Я могу найти егопозвонив "uname -r", но как мне сделать это в файле спецификации rpm?

Кроме того, если есть лучший метод, я открыт для идей.

Ответы [ 3 ]

2 голосов
/ 18 августа 2010

Вы можете интерполировать результат uname -r в каталог (догадываясь здесь):

/lib/modules/`uname -r`/extra/
0 голосов
/ 04 декабря 2012

Это не очень хорошая идея, потому что вы должны скомпилировать модули ядра на клиентском компьютере с %triggerin, чтобы он выдержал обновление ядра.

0 голосов
/ 04 декабря 2012

Ответ на этот вопрос, вероятно, оставит вас с несоответствиями символов при попытке загрузить модули ядра, скомпилированные для другого ядра.

Чтобы разместить модули ядра во время компиляции, сделайте так, как ответил Делан:

%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-решения являются решением именно этой проблемы.

...