RPM-Spezifikation: So löschen Sie ein RPM, bevor es installiert wird

278
kingsmasher1

Ich habe ein RPM namens dcca-img.rpm In der Spec-Datei des obigen RPM haben PreReqswir mysql-clientund mysqlals Ergebnis davon, dass dcca-img.rpm installiert wird, werden beide erwartungsgemäß installiert.

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

Das Problem besteht aufgrund dieser Anforderung: Wenn auf dem Computer keine vorhandene und niedrigere Version von mysql installiert ist, sollte diese gelöscht werden, bevor die neuere Version installiert wird.

Nun, in %preAbschnitt kann ich das setzen, rpm -e 'rpm -qa | grep mysql'aber das löst sich nicht, denn bis dahin wäre die höhere Version bereits installiert, %predh RPM dcca-img.rpm wird nicht installiert, bevor Abhängigkeiten von get dcca-img.rpminstalliert werden.

Wie kann ich sicherstellen, dass mysql-5.5.43 installiert ist und erst NACH dcca-img.rpm installiert wird (was dazu führt, dass eine ältere Version gelöscht wird %post)?

1
AFAIK, es ist nicht möglich, die Installation anderer Pakete über Ihre Spezifikationsdatei zu steuern. Ich kann mir nur ein Wrapper-Skript vorstellen, mit dem rpm.s mit niedrigerer Version gelöscht wird, bevor das RPM (und die Abhängigkeiten) installiert werden. Fazlin vor 7 Jahren 0
Das ist wirklich unglücklich kingsmasher1 vor 7 Jahren 0
Ich wäre froh, mich als falsch erwiesen zu haben :) Fazlin vor 7 Jahren 0

0 Antworten auf die Frage