Могу ли я удалить RPM из разделов скриптов .spec? - PullRequest
7 голосов
/ 11 августа 2011

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

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

rpm -e rpm-xyz.

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

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

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

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

Спасибо,

-Martin

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

1 Ответ

12 голосов
/ 12 августа 2011

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

Obsoletes: rpm-xyv <= VERSION

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

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

...