บังคับลบอย่างไรเมื่อสคริปต์หลังการติดตั้งล้มเหลว


37

ฉันมีแพ็คเกจที่กำหนดเองติดตั้งบน Ubuntu 10.10 ของฉันและพยายามที่จะลบออกฉันได้รับ:

$ sudo dpkg -r package
sub-process script post-installation installed returne an error state 127

(ข้อความที่ส่งคืนจากคำสั่งแปลจากภาษาโปรตุเกส (br)

ดังนั้นฉันตั้งข้อสังเกตว่าในสคริปต์การติดตั้งของแพ็คเกจนี้สิ่งที่มันทำคือสร้างรายการเมื่อเริ่มต้นของฉันสร้างโฟลเดอร์ใน / opt และสร้างผู้ใช้

ฉันลบทั้งหมดที่สร้างขึ้น แต่ตอนนี้ฉันแค่ต้องการลบมันออกจากรายการ dpkg เพราะฉันต้องการทำให้ linux ของฉันเหมือนว่าฉันไม่เคยติดตั้งแพ็คเกจนี้

ฉันจะทำสิ่งนี้ได้อย่างไร

คำตอบ:


47

คุณอาจต้องลบแพ็คเกจด้วยตนเองโดยใช้:

sudo dpkg --purge --force-all package

แทนที่packageด้วยชื่อของแพ็กเกจ

หมายเหตุ: แนะนำให้รายงานข้อผิดพลาดหากแพ็คเกจไม่ใช่ของคุณหรือไม่เป็นที่รู้จักสำหรับคุณว่าสคริปต์ทำอะไร


1
@jcomeau_ictx แน่นอน ... คำถามนี้เกี่ยวกับการลบโพสต์ไม่ใช่เกี่ยวกับ pre
Braiam

30

กำลังพยายามลบ xmail ที่dpkg --purge --force-all xmailล้มเหลวเนื่องจากสคริปต์การลบล่วงหน้ากำลังออกจากความพยายามที่จะหยุด xmail daemon ฉันพบวิธีแก้ปัญหาที่นี่: https://serverfault.com/questions/179570/how-to-remove-a-package-which-post-installation-and-pre-removal-script-fails

โดยเฉพาะฉันแก้ไข /var/lib/dpkg/info/xmail.prerm และเปลี่ยน|| exit $!เป็น|| true


1
ฉันไม่เข้าใจ downvote โซลูชันอื่นอาจไม่ครอบคลุมทุกกรณีและนี่จะให้ความช่วยเหลือสำหรับส่วนที่เหลือ
jcomeau_ictx

1
ถ้าฉันต้องเดาคุณตอบว่า "ล้มเหลวเพราะสคริปต์ลบล่วงหน้า" คำถามนี้เกี่ยวกับสคริปต์ "หลังการติดตั้ง" คุณไม่ได้ตอบคำถามที่ถามในขณะนี้
Braiam

2
ฉันมีปัญหากับสคริปต์การลบล่วงหน้าและสิ่งนี้ช่วยฉันได้
Bogdan Calmac

2
อย่างที่คาดไว้หาก*.prermไฟล์การแก้ไขนั้นน่าเบื่อเกินไปคุณสามารถลบไฟล์ได้เช่นกัน - กระบวนการถอนการติดตั้งทำงานได้กับไฟล์ที่ขาดหายไป
Paulius Šukys

ขอบคุณไม่รู้ด้วยซ้ำ! นั่นเป็นคำตอบที่แยกจากกันถ้าคุณต้องการทำเช่นนั้น
jcomeau_ictx
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.