Pengaturan apa yang mengatur rpm -e?


0

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?


Ini bisa berupa beberapa scriptlet. Apakah ada beberapa? rpm -qp --scripts ./myapp.rpm
msuchy

D'Oh, kamu benar! Itu adalah luka yang disebabkan oleh diri sendiri. Buat komentar Anda sebagai jawaban dan saya akan mendukung Anda!
Steve Cohen

Jawaban:


2

Ini bisa berupa beberapa scriptlet. Apakah ada beberapa?

rpm -qp --scripts ./myapp.rpm 

Saya lupa bahwa saya telah membangun plugin saya dengan skrip postun% default yang saya salin dari file spec dan tampak masuk akal bagi saya pada saat itu. Itu rm -rf. Masuk akal bagi saya, tetapi saya sekarang menyadari bahwa itu hanya sebuah penutup untuk penulisan skrip yang buruk dan seharusnya tidak menjadi default!
Steve Cohen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.