วิธีการบังคับลบแพ็กเกจหากสคริปต์การลบ dpkg ล้มเหลว


16

ฉันกำลังพยายามลบแพคเกจที่ฉันลบ/etc/init.d/disco-masterไฟล์ (ในความพยายามที่จะลบแพคเกจด้วยตนเอง) ฉันต้องการลบdisco-masterแพคเกจ ฉันจะทำสิ่งนี้ได้อย่างไร

นี่คือสิ่งที่เกิดขึ้นเมื่อฉันsudo apt-get remove disco-master:

removing disco-master ...
invoke-rc.d: unknown initscript, /etc/init.d/disco-master not found.
dpkg: error processing disco-master (--remove):
 subprocess installed pre-removal script returned error exit status 100
Errors were encountered while processing:
 disco-master
E: Sub-process /usr/bin/dpkg returned an error code (1)

เมื่อฉันsudo apt-get install --reinstall disco-masterฉันได้รับต่อไปนี้:

You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 disco-master : Depends: disco-node (= 0.4.2+nmu1) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

เมื่อฉันฉันจะsudo apt-get -f installได้รับสิ่งนี้:

Unpacking disco-node (from .../disco-node_0.4.2+nmu1_amd64.deb) ...
dpkg: error processing /var/cache/apt/archives/disco-node_0.4.2+nmu1_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/disco/master/ebin/disco.app', which is also in package disco-master 0.4.1
No apport report written because MaxReports is reached already
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/disco-node_0.4.2+nmu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

เมื่อฉันวิ่งsudo apt-get remove disco-nodeฉันได้รับสิ่งต่อไปนี้:

Package disco-node is not installed, so not removed
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 disco-master : Depends: disco-node (= 0.4.1) but it is not going to be installed
                Depends: python-disco (= 0.4.1) but 0.4.2+nmu1 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

เมื่อฉันได้sudo dpkg -P --force-all disco-masterฉัน:

Removing disco-master ...
invoke-rc.d: unknown initscript, /etc/init.d/disco-master not found.
dpkg: error processing disco-master (--purge):
 subprocess installed pre-removal script returned error exit status 100
Errors were encountered while processing:
 disco-master

3
sudo dpkg -P --force-all disco-masterลองใช้
netcoder

ทำอย่างนั้น ... ต่อท้ายคำถาม
fodon

คำตอบ:


18

สร้าง dummy initscript เพื่อหลอก dpkg:

sudo nano /etc/init.d/disco-master

ป้อนต่อไปนี้:

#!/bin/bash
exit 0

บันทึกไฟล์ตั้งค่าสิทธิ์ดำเนินการ ( sudo chmod 755 /etc/init.d/disco-master) แล้วลองsudo apt-get remove disco-masterอีกครั้ง


ฉันทำสิ่งเดียวกันกับ OP โดยใช้แพ็คเกจเกลือเท่านั้น ... คำตอบนี้ใช้ได้สำหรับฉันด้วย!
Anentropic

เอริคช่วยชีวิตคุณเก่งมาก
Peter Teoh

3
ยอดเยี่ยมฉันมี: post-removal script returned error exit status 1.. ดังนั้นฉันจึงพบสคริปต์ที่/var/lib/dpkg/info/{package}.postrmผ่านการตรวจสอบว่าฉันได้ทำสิ่งต่าง ๆ ในนั้น (ลบ configs / files ฯลฯ ) จากนั้นแก้ไขมันตามข้างบน .. IT WORKS .. Apt ทำงานได้อีกครั้ง . น่าอัศจรรย์ : D
Grizly
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.