Ich habe eine Situation, in der ich beim ersten Start meiner Anwendung eine Konfigurationsdatei mit Standardwerten erstellen muss. Dies ist keine typische Konfigurationsdatei, bei der uns alle von Benutzern vorgenommenen Änderungen sehr wichtig sind. Während des Upgrades möchte ich die Konfigurationsdatei einfach entfernen, damit der neue Code gestartet wird und die Konfigurationsdatei automatisch erneut mit Standardwerten erstellt (nicht meine Entscheidung – ich befolge nur widerwillig Befehle).
Gibt es eine Möglichkeit, ein RPM-Paket zu erstellen, das eine Datei enthält, die es nicht installiert, sodass diese Datei bei der Deinstallation entfernt wird?
Ich weiß, dass ich immer ein Pre-Remove-Scriptlet hinzufügen kann, das die Datei entfernt – ich habe mich nur gefragt, ob ich RPM dazu bringen kann, dies automatisch für mich zu tun.
Antwort1
Sie können dies mit der Anweisung tun %ghost
:
%files
%ghost /path/to/future.file
von demDokumentation:
Die %ghost-Direktive
Wie wir im Abschnitt „Die %files-Liste“ erwähnt haben, wird eine Datei, die in der %files-Liste angegeben ist, automatisch in das Paket aufgenommen. Es gibt Fälle, in denen eine Datei zum Paket gehören, aber nicht installiert sein sollte – Protokolldateien und Statusdateien sind gute Beispiele für Fälle, in denen Sie dies möglicherweise wünschen.
Antwort2
Nein, das ist nicht möglich.
Übrigens: RPM dient zum Bereitstellen von Apps und Bibliotheken. Für das Konfigurationsmanagement sollten Sie Ansible verwenden.