2013-01-24 14 views
19

Ich spiele mit dem Befehl rpm -upgrade und bemerkte, dass rpm verschiedene Möglichkeiten hat, modifizierte Konfigurationsdateien zu bearbeiten, damit es während des Upgrades nicht verloren geht. Soweit ich weiß, wird, wenn eine Konfigurationsdatei geändert wurde und das Paket mit rpm -U aktualisiert wird, rpm die ursprüngliche Eigenschaftendatei als {Datei} .rpmsave umbenennen und die neue Konfigurationsdatei mit dem ursprünglichen Dateinamen {Datei} installieren.Rpm Upgrade Handhabung von Konfigurationsdateien

Wenn ich jedoch versuche, rpm -U mit dem Paket, das ich erstellt habe, auszuführen, was ich tatsächlich sehe, wird die ursprüngliche Konfigurationsdatei gelöscht und die neue Konfigurationsdatei wird in {Datei} .rpmsave umbenannt. Ist das das beabsichtigte Verhalten? In meinem Installationsskript ändere ich auch etwas Text in der Konfigurationsdatei mit "sed". Könnte dies die Art und Weise beeinträchtigt haben, wie rpm die Konfigurationsdatei während eines Upgrades behandelt?

+0

Was haben Sie für den Befehl sed getan? Ändern Sie die rpmnew Datei? – GrkEngineer

Antwort

20

Dies ist das beabsichtigte Verhalten. Wenn die Konfigurationsdatei niemals überschrieben (und in .rpmsave verschoben) werden soll, verwenden Sie in der Datei rpm .spec %config(noreplace) anstelle von %config, und die Datei wird nicht ersetzt. Stattdessen wird die neue Datei aus dem RPM-Paket als .rpmnew erstellt, und die neue Datei wird in Ruhe gelassen.

+0

Gibt es eine Möglichkeit, die ursprüngliche Datei beizubehalten, oder müsste ich die .rpmnew-Datei in den ursprünglichen Dateinamen umbenennen, vielleicht in der% post-Installation? – user459811

+0

Entschuldigung, wenn ich nicht klar war; die ursprüngliche Datei bleibt (wird nicht ersetzt), und die "neue" Konfigurationsdatei von der RPM wird als .rpmnew erstellt. –