Могу ли я удалить RPM из разделов скриптов .spec?

Я создаю новую версию существующего .spec/rpm и хочу удалить зависимость, которая была необходима для этого (предыдущий .spec имел «Требуется: rpm-xyz»).

Итак, помимо удаления Requires: rpm-xyz, я добавил следующее в раздел «%post» файла .spec:

об/мин -e об/мин-xyz.

Когда я устанавливаю сгенерированный rpm с помощью yum, после его загрузки и запроса подтверждения обработки я получаю эту строку, и она застряла там навсегда:

предупреждение: ожидание блокировки транзакции на /var/lib/rpm/__db.000

Так что для меня это выглядит как тупик (yum вызывает rpm, затем вызывает rpm изнутри). Итак, у меня есть файл __db.oox в /var/lib/rpm, и мне нужно перестроить базу данных rom, чтобы удалить их.

Итак, вопрос: могу ли я вызывать команду rpm из файла спецификации? Я читал об устаревших тегах, но это не удаляет обороты. Как лучше убрать обороты?

Спасибо,

-Мартин

P.S. Дополнительная информация: Да, мне нужно удалить старые зависимости, и нет, другие обороты от этого не зависят.


person Martin    schedule 11.08.2011    source источник


Ответы (1)


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

Obsoletes: rpm-xyv <= VERSION

в вашем файле .spec. Затем Yum продолжит удаление другого пакета.

См. http://yum.baseurl.org/wiki/YumPackageUpdates для получения дополнительных советов о том, что делать с переименованиями пакетов и т. д. .

person Stijn Hoop    schedule 12.08.2011
comment
Спасибо. Это именно то, что я искал. В документе упоминается, что Obsoletes должен был использоваться при переименовании пакета, поэтому я смутил меня. Я не использовал какую-либо версию, и соответствующие обороты были удалены. - person Martin; 12.08.2011