Получение текущей архитектуры для RPM - PullRequest
0 голосов
/ 04 марта 2012

Я автоматизирую сборку RPM-пакетов с помощью rpmbuild.Файлы попадают в подкаталог архитектуры под RPMS.

Вопрос - как извлечь из сценария оболочки имя архитектуры хоста, который использует RPM?Это не то же самое, что команда arch.

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Есть /usr/lib/rpm/rpmrc, который переводит известные имена архитектуры уровня ОС в канонические имена архитектуры RPM. Следующий скрипт оболочки выполняет эту работу за меня:

ARCH=`arch`
# OS-level architecture name, like 'i686'

ARCH=`cat /usr/lib/rpm/rpmrc | grep "buildarchtranslate: $ARCH" | cut -c21-`
# returns the translate line as "arch-from: arch-to"

ARCH=${ARCH/#*: /}
# strips the prefix up to colon and following space, returns arch-to.
# Assumes just one space after colon. If not, more regex magic is needed. 
0 голосов
/ 04 марта 2012

Вы делаете это неправильно. Переопределить% _build_name_fmt в ~ / .rpmmacros.

...