การตั้งค่าใดที่ควบคุม rpm -e


0

ฉันมีปัญหาที่ตรงข้ามกับ RPM จะไม่ลบไดเรกทอรีที่ติดตั้งหากมีการแก้ไขหลังจากการติดตั้งครั้งแรก . ผู้โพสต์นั้นต้องการบังคับให้ลบไฟล์ที่ไม่ได้สร้างโดยรอบต่อนาทีในไดเรกทอรีที่สร้างขึ้นโดยรอบต่อนาทีซึ่งขัดกับพฤติกรรมรอบต่อนาทีเริ่มต้น

ปัญหาของฉันคือสิ่งที่ตรงกันข้าม ฉันโพสต์ไว้ในตอนแรก กองล้นมากเกินไป แต่ฉันต้องการถามมันแตกต่างกันเล็กน้อยที่นี่ เมื่อติดตั้ง / ถอนการติดตั้ง rpms ที่สร้างขึ้นแบบดั้งเดิมโดยใช้ rpmbuild และ specfiles ฉันจะได้รับพฤติกรรมเริ่มต้นซึ่งเป็นสิ่งที่ฉันต้องการ สถานการณ์ของฉันคือ rpm จะสร้างไดเรกทอรีล็อกที่ใดที่หนึ่งแอ็พพลิเคชันจะล็อกไฟล์ในไดเรกทอรีนั้นและในการถอนการติดตั้งการมีไฟล์เหล่านี้ที่ไม่ได้สร้างโดยรอบต่อนาทีจะป้องกันการลบไฟล์หรือไดเรกทอรีที่เก็บไว้

แต่เมื่อฉันสร้าง RPM ด้วย ปลั๊กอินเนบิวลา rpm สำหรับ Gradle สิ่งที่แตกต่าง ไดเรกทอรีจะถูกลบโดยไม่คำนึงว่ามีการเพิ่มไฟล์ใด ๆ ลงไปหรือไม่ ยิ่งการดีบักเอาต์พุต rpm บอกฉันว่ามันไม่ได้ลบไดเรกทอรีแม้ว่าจริงๆแล้วมันจะเป็น:

# 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

เนื่องจากฉันใช้คำสั่ง rpm เดียวกันกับ rpms ที่สร้างโดยปลั๊กอิน Gradle และ rpms ที่สร้างขึ้นในแบบดั้งเดิมและบนเครื่องเดียวกันกับการกำหนดค่ารอบต่อนาทีเดียวกัน SOMETHING จะต้องแตกต่างกันในไฟล์ rpm เอง แต่ฉันไม่รู้ว่ามันอาจจะเป็นอะไร ใครช่วยสอนฉันเกี่ยวกับเรื่องนี้?


มันอาจเป็นสคริปต์เล็ต มีบ้างไหม? rpm -qp --scripts ./myapp.rpm
msuchy

โอ๊ะคุณพูดถูก! มันเป็นบาดแผลที่ทำร้ายตัวเอง แสดงความคิดเห็นคำตอบของคุณและฉันจะโหวตคุณ!
Steve Cohen

คำตอบ:


2

มันอาจเป็นสคริปต์เล็ต มีบ้างไหม?

rpm -qp --scripts ./myapp.rpm 

ฉันลืมว่าฉันได้สร้างปลั๊กอินของฉันด้วยสคริปต์% postun เริ่มต้นที่ฉันคัดลอกมาจากไฟล์ข้อมูลจำเพาะและดูสมเหตุสมผลกับฉันในเวลานั้น มันทำ rm -rf มันสมเหตุสมผลสำหรับฉัน แต่ตอนนี้ฉันรู้แล้วว่ามันเป็นเพียงการปกปิดสำหรับการเขียนสคริปต์ที่ไม่ดีและไม่ว่าจะเกิดเหตุการณ์ใดก็ตาม
Steve Cohen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.