2014-10-31 3 views
1

Мое понимание всего, что я прочитал о спецификационных файлах, заключается в том, что инструкция Requires (post) сделает так, чтобы любая последующая библиотека не понадобилась, пока после установка завершена. Кажется, это не так. Неужели я не понимаю эту команду?rpmbuild Требуется (сообщение) не работает должным образом, требуется локальный пакет

Моя основная цель - загрузить еще один rpm в разделе% pre, а затем потребовать его позже, чтобы он установил его из локальной копии. Если есть еще один способ сделать это, чем то, что я делаю, я бы очень признателен за помощь?

+0

Если пакет не доступен при начале транзакции, я не считаю, что вы можете * сделать его доступным во время транзакции. Все остальное в вопросе. –

ответ

2

Requires(post) тега сообщает RPM, что ваш пакет требует, чтобы пакет быть установлен перед %post скриптлетом вашего RPM может работать (по-видимому, потому что зависит от файла из этого пакета в вашем %post скриптлете в некотором роде).

Это используется для заказа установки пакета в рамках транзакции.

Насколько мне известно (и я считаю, что подробный вывод отладки из ня подтвердит это) полный набор необходимой информации о пакете собрана до того сделка начинается не воля-неволей, как будут установлены пакеты.

Так что, как я указал в своем комментарии, все остальное здесь в стороне я не верю, что можно сделать пакет для сделки с в сделки.

+0

Etan, спасибо за ответы. Поэтому я попробовал вместо этого сделать заявление, требующее выражения «Требуется: http: ....../package.rpm» и дать ему весь адрес, это также не удалось. Будет ли способ запустить команду yum-config-manager -add-repo перед тем, как будет запущена моя секция? –

+0

@MarkS У вас нет раздела «требуется». У вас есть записи 'Requires' в вашем spec, которые кодируются в заголовке генерируемого RPM. Затем Yum/rpm использует их для поиска соответствующих пакетов и построения транзакции, которая работает. Так что нет, вы не можете ничего сделать в этот момент. В этот момент вы просто данные, а не код. Если вам нужен внешний репозиторий, вы можете создать пакет стиля 'myrepo-release' (например,' redhat-release' или 'centos-release' или' epel-release', и сначала люди установят это, что является хорошей идеей так или иначе, они также получают ключи от GPG). –

0

Вы не можете установить другой RPM из RPM. БД будет заблокирована. Поместите их в один и тот же репозиторий yum, а затем yum обеспечит их установку, если у вас есть они друг у друга.

Смежные вопросы