rpm spec call uname -r
Когда я устанавливаю свое приложение, я хотел бы скопировать некоторые файлы в /lib/modules/KERNEL_VERSION/extra
,
Проблема, конечно, в том, что KERNEL_VERSION
не исправлено
Я могу найти это, позвонив "uname -r"
, но как мне сделать это в спецификации файла rpm?
Кроме того, если есть лучший метод, я открыт для идей.
3 ответа
Вы можете интерполировать результат uname -r
в каталог (угадай здесь):
/lib/modules/`uname -r`/extra/
Это не очень хорошая идея, потому что вы должны скомпилировать модули ядра на клиентском компьютере с %triggerin
так что он выживает при обновлении ядра.
Ответ на этот вопрос, вероятно, оставит вас с несоответствиями символов при попытке загрузить модули ядра, скомпилированные для другого ядра.
Чтобы разместить модули ядра во время компиляции, сделайте так, как ответил Делан:
%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-решения являются решением именно этой проблемы.