Saya memiliki masalah yang persis kebalikan dari RPM tidak akan menghapus direktori yang diinstal jika mereka telah diubah setelah instalasi awal . Poster itu ingin memaksa penghapusan file yang tidak dibuat oleh rpm di direktori yang dibuat oleh rpm, bertentangan dengan perilaku rpm default.
Masalah saya justru sebaliknya. Saya mempostingnya awalnya di Stack Overflow tapi saya ingin menanyakannya sedikit berbeda di sini. Ketika menginstal / menghapus rpms yang dibangun dengan cara tradisional, menggunakan rpmbuild dan specfile, saya mendapatkan perilaku default, yang saya inginkan. Skenario saya adalah bahwa satu rpm membuat direktori log di suatu tempat, aplikasi masuk ke file dalam direktori itu, dan pada penghapusan instalasi, keberadaan file-file ini yang tidak dibuat oleh rpm mencegah penghapusan atau dari direktori yang menyimpannya.
Tetapi ketika saya membangun RPM dengan plugin rpm Nebula untuk Gradle ada sesuatu yang berbeda. Direktori hanya dihapus terlepas dari apakah ada file yang ditambahkan ke dalamnya. Yang lebih aneh lagi, hasil debug dari rpm memberi tahu saya bahwa itu TIDAK menghapus direktori, meskipun sebenarnya itu adalah:
# 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
Karena saya menjalankan perintah rpm yang sama dengan rpms yang dibuat oleh plugin Gradle dan dengan rpms yang dibuat dengan cara tradisional, dan pada mesin yang sama dengan konfigurasi rpm yang sama, SESUATU harus berbeda dalam file rpm itu sendiri. Tapi saya tidak tahu apa itu. Adakah yang bisa menjelaskan hal ini kepada saya?