Es kann ein Scriptlet sein. Sind dort welche?
rpm -qp --scripts ./myapp.rpm
Ich habe ein Problem, das genau das Gegenteil von RPM ist und die installierten Verzeichnisse nicht löscht, wenn sie nach der Erstinstallation geändert wurden . Dieses Poster wollte das Löschen von Dateien erzwingen, die nicht von rpm in einem Verzeichnis erstellt wurden, das von rpm erstellt wurde.
Mein Problem ist das genaue Gegenteil. Ich habe es ursprünglich auf Stack Overflow gepostet, möchte es aber hier etwas anders fragen. Bei der Installation / Deinstallation von auf herkömmliche Weise erstellten rpms mit rpmbuild und specfiles erhalte ich das Standardverhalten, das ich will. Mein Szenario ist, dass ein RPM irgendwo ein Protokollverzeichnis erstellt, Anwendungen in Dateien in diesem Verzeichnis protokollieren. Bei der Deinstallation verhindert das Vorhandensein dieser Dateien, die nicht von RPM erstellt wurden, das Löschen dieser Dateien oder des Verzeichnisses, in dem sie gespeichert sind.
Aber wenn ich die RPMs mit dem Nebula-RPM-Plugin für Gradle baue, ist etwas anders. Das Verzeichnis wird einfach gelöscht, unabhängig davon, ob Dateien hinzugefügt wurden. Noch bizarrer sagt mir die Debug-Ausgabe von rpm, dass das Verzeichnis NICHT gelöscht wird, obwohl es tatsächlich so ist:
# rpm -evv myapp ... D: fini 040755 2 (7007, 500) 4096 /usr/local/myapp/logs D: erase rmdir of /usr/local/myapp/logs failed: Directory not empty ... # ls -al /usr/local/myapp/logs ls: cannot access /usr/local/myapp/logs: No such file or directory
Da ich dieselben rpm-Befehle mit rpms, die vom Gradle-Plugin erstellt wurden, und mit rpms, die auf herkömmliche Weise erstellt wurden, und auf derselben Maschine mit derselben rpm-Konfiguration ausführte, muss sich SOMETHING in den rpm-Dateien selbst unterscheiden. Aber ich habe keine Ahnung, was das sein könnte. Kann mich jemand aufklären?
Es kann ein Scriptlet sein. Sind dort welche?
rpm -qp --scripts ./myapp.rpm