rpm --upgrade des gleichen Pakets führt zu Dateikonflikten

rpm --upgrade des gleichen Pakets führt zu Dateikonflikten

Ich habe mein benutzerdefiniertes Paket installiert, das eine Reihe von Dateien enthält.

Beim zweiten Ausführen rpm --upgradetreten viele Fehler auf:

File ABC from install of mypackage-1.0-0.i386 conflicts with file from package mypackage-1.0-0.i386

RPM wird mit Fehlercode 5 beendet.

Aber es ist dasselbe Paket mit derselben Versionsnummer! Sollte da nicht „bereits installiert“ oder so etwas stehen? Was muss ich mit der Spezifikationsdatei oder dem RPM-Upgrade-Befehl tun, um dieses Problem zu vermeiden?

Beim Ausführen rpm --upgrade --replacefileswird angezeigt, dass das PaketmeinPaket-1.0-0.i386bereits installiert", mit Exitcode 5

(Ich möchte die Dateien nicht wirklich ersetzen, wenn sie sich nicht geändert haben ...

Einige der Fehlermeldungen

Antwort1

Sie haben mehrere Möglichkeiten. Am einfachsten ist es, die Version und/oder das Release zu erhöhen, wenn Sie ein neues Paket erstellen, damit der rpm -U(Upgrade-)Befehl normal funktioniert. Wenn Sie das nicht möchten, können Sie rpm -U --replacefiles --replacepkgsdas Paket effektiv neu installieren. Eine dritte Möglichkeit besteht darin, das Paket zu entfernen, bevor Sie das „neue“ installieren.

In all diesen Fällen werden alle Dateien, die Teil des regulären Paylods sind (d. h. nicht als noreplaceKonfigurationsdateien markiert sind), durch die neueren Versionen ersetzt. So funktioniert RPM nun einmal. Wenn Sie nur Dinge aktualisieren möchten, die sich geändert haben, müssen Sie sich mit der Generierung von DRPM-Paketen (Delta RPM) befassen, die nur Unterschiede zu einer früheren Version enthalten. Dazu müssen Sie beim Neuaufbau Ihre Versions- und/oder Release-Nummern erhöhen. Ich habe noch nie Delta-RPM-Pakete erstellt, daher kann ich dazu keinen Rat geben.

verwandte Informationen