Как заставить Anaconda установить мой пакет после coreutils? - PullRequest
4 голосов
/ 03 июня 2011

У меня настроенный RPM, который создает набор подпакетов. В каждом подпакете есть скрипт% post в файле спецификации, который используется для копирования некоторых символических ссылок в другую папку:

%post server
echo "Copying symlinks..." >> /tmp/mystuff.log
pwd >> /tmp/mystuff.log
cp -av /etc/mystuff/symlinks/server/current /etc/mystuff/ >> /tmp/splashtheme.log 2>&1

Когда я устанавливаю один из RPM-пакетов в работающей системе, он работает нормально. Когда я устанавливаю его через Anaconda (как часть списка пакетов Kickstart), послеустановочные сценарии RPM, похоже, не запускаются.

Edit: Оказывается, они на самом деле делают , но я получаю сообщение об ошибке:

/var/tmp/rpm-tmp.48901: line 3: cp: command not found

Очевидно, что Anaconda пытается установить мой RPM перед установкой coreutils, хотя я указываю coreutils как зависимость в Requires:.

Итак, мой пересмотренный вопрос называется: «Как заставить мой пакет быть установленным после coreutils?

Ответы [ 2 ]

3 голосов
/ 17 июля 2011

@ Джастин, вам повезло, что это работает, поскольку анаконда может установить их в другом порядке, если в одной транзакции.Вам нужно:

Requires: coreutils
Requires(post): coreutils

Таким образом, anaconda / rpm обеспечит установку основных утилит до запуска% post.

2 голосов
/ 04 июня 2011

У меня была ошибка в моем specfile. Я указал строку «Требуется:» в преамбуле, а не в разделе% пакета. Это исправлено:

%package server
Summary: Server component
Group: Extras
Requires: coreutils
...