Welche Einstellungen regeln die Drehzahl -e?

405
Steve Cohen

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?

0
Es kann ein Scriptlet sein. Sind dort welche? rpm -qp --scripts ./myapp.rpm msuchy vor 8 Jahren 0
D'Oh, du hast recht! Es ist eine selbstverschuldete Wunde. Geben Sie Ihrem Kommentar eine Antwort und ich werde Sie unterstützen! Steve Cohen vor 8 Jahren 0

1 Antwort auf die Frage

2
msuchy

Es kann ein Scriptlet sein. Sind dort welche?

rpm -qp --scripts ./myapp.rpm 
Ich vergaß, dass ich mein Plugin mit einem standardmäßigen% postun-Skript erstellt hatte, das ich aus einer Spezifikationsdatei kopiert hatte und zu dem Zeitpunkt für mich vernünftig aussah. Es macht eine rm -rf. Es hat für mich Sinn gemacht, aber mir ist jetzt klar, dass es nur eine Verschleierung für schlechtes Skriptschreiben ist und auf keinen Fall ein Standard sein sollte! Steve Cohen vor 8 Jahren 0