Шпаргалка rpm

Просмотр встроенных макросов (можно фильтровать с помощью grep):
rpm --showrc

Просмотр результатов раскрытия конкретных макросов:

rpm --eval "%systemd_post daemond.service",
rpm --eval %_libdir

Объявит макрос в спеке в текущей секции:
%define _some_dir /opt/some/path

Объявит макрос во всей спеке (нужно объявлять в первых строках спекфайла):

%global _some_dir /opt/some/path

Общий синтаксис объявления макроса

%global <macro_name_here> <macro_default_value>
%define <macro_name_here> <macro_default_value>

Значения макроса прокидывается с помощью параметра
--define "<macro_name_here><macro_value>"

Смотрим как раскроются макросы во всей спеке:

rpmspec \
--define "macro_name macro_value" \
--parse some-spec-file.spec

Отключит debuginfo пакет
%global debug_package %{nil}

Соберет только бинарный rpm:
rpmbuild -bb some-spec.spec

Соберет пакет с исходниками:
rpmbuild -bs some-spec.spec

Соберет бинарный пакет и пакет с исходниками:

rpmbuild -ba some-spec.spec

Собрать SRPM под el5 из под el7
rpmbuild -bs --define "_sourcedir $PWD" --target x86_64-linux-el5 --define "_source_filedigest_algorithm md5" --define "dist .el5" specfile.spec

Добавить комментарий