Спецификация RPM: Как стереть RPM перед установкой

204
kingsmasher1

У меня есть RPM с именем dcca-img.rpm В файле спецификации выше RPM, у PreReqsнас есть, mysql-clientи mysql, как результат, перед установкой dcca-img.rpm оба устанавливаются, как и ожидалось.

PreReq: perl, mysql-client >= 5.5.43, libmysqlclient15 >= 5.0.96, libmysqlclient_r15 >= 5.0.96, mysql >= 5.5.43 

Проблема заключается в следующем: если на компьютере установлено n и более низкая версия mysql, ее следует удалить до установки более новой версии.

Теперь, в %preразделе я могу поставить, rpm -e 'rpm -qa | grep mysql'но это не решит, потому что к тому времени более высокая версия уже была бы установлена, как %preсредство перед установкой RPM dcca-img.rpm, а не до того, как будут установлены зависимости dcca-img.rpm.

Как я могу убедиться, что mysql-5.5.43 установлен, только ПОСЛЕ dcca-img.rpm, (в результате чего %postвызывается для удаления предыдущей версии один)?

1
AFAIK, невозможно управлять установкой другого пакета из вашего spec-файла. Единственный способ, о котором я могу думать, - это иметь скрипт-обертку, который стирает более ранние версии rpm.s перед установкой вашего rpm (и зависимостей). Fazlin 7 лет назад 0
Это действительно неудачно kingsmasher1 7 лет назад 0
Я был бы счастлив оказаться неправым :) Fazlin 7 лет назад 0

0 ответов на вопрос

Похожие вопросы