Никогда не собирал rpm-пакеты, но тут возникла такая надобность. Нужно для CentOS 7 собрать модули ядра ipt-netflow, nvidia-340 и последнюю версию утилиты iptables (ссылки на исходники и загрузки).
Итак, насколько я изучил тему, мне для этого нужны: исходники, все зависимости, утилита rpmbuild и spec-файл. И вот тут сразу же начинаются непонятки:
1) ipt-netflow и iptables собираются путём стандартной трёхкомандной комбинации: "./configure", «make», «make install», собственно эти команды я и вписываю в секции %build и %install spec-файла. Но как быть с nvidia, это же проприетарный пакет, в нём ничего не собирается, что там нужно в секции %prep, %build и %install вписывать?
2) Структуру каталогов RPMS, SOURCES, SPECS, SRPMS в домашнем каталоге пользователя создавать надо или её можно создать в каком-нибудь общем каталоге, например в /srv/adminfiles. Мне так удобнее, у меня в домашнем каталог только профиль, а все полезные файлы я храню в /srv, который у меня в виде отдельного раздела примонтирован.
3) Где можно почитать (желательно на русском) о макросах, используемых в spec-файлах, таких как %{name} и %setup? Без этой информации механизм написания spec-файлов остаётся непонятным.
4) И да, система же у нас защищена от возможных ошибок в сборочных сценариях? rpmbuild мы ведь запускаем под пользователем, не под рутом? А fakeroot там вызывается?