วิธีลบแพ็คเกจที่เสียหาย (ในกรณีนี้“ คลิก”)


15

วิธีการลบแพคเกจที่แตกคลิก ? ฉันพยายามติดตั้ง ubuntu-sdk ใน Ubuntu 14.04 ของฉัน ฉันได้รับข้อผิดพลาดมากเกินไป

sudo apt-get autoremove -f click
Reading package lists ... Done
Building dependency tree
Is read status information ... Done
The following packages will be REMOVED:
   click
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation released 166 ks of disk space.
Do you want to continue? [Y/n] y
(Reading database ... 350824 files and directories currently installed.)
Removing click (0.4.38.5-0~457~ ubuntu14.04.1) ...
Trace Back (most recent call last):
   File "/usr/bin/click", line 31, in <module>
     from click import commands
Import Error: can not import name 'commands'
dpkg: error processing package click (--remove):
  subprocess command file pre-removal installed returned error exit status 1
Reading was too many errors:
  click
E: Sub-process /usr/bin/dpkg Returned an error code (1)

ถ้าฉันพยายามสั่ง sudo apt-get purge -f

เกิดข้อผิดพลาดเดียวกัน

คำตอบ:


30

หลังจากนั้นไม่ประสบความสำเร็จฉันได้ทดสอบ "วิธีที่ยาก" นี้ ... และ ... ใช้งานได้!

sudo rm /usr/bin/click
sudo apt-get autoremove -f click

ไฟล์มีปัญหาเมื่อนำเข้าโมดูล Python และคุณต้องการลบแพ็คเกจ ดังนั้นไฟล์สามารถลบได้ด้วยตนเอง


2
@AB คำแนะนำที่แย่มากตั้งแต่คำสั่งที่สองลบแพ็คเกจระบบจำนวนมาก
UpmostScarab

มันใช้งานได้จริงสำหรับฉันใน Ubuntu 18.04 LTS อย่างไรก็ตามฉันใช้sudo apt-get --fix-broken installหลังจากคำสั่งสองคำ
afagarap

ขอบคุณมาก!! ฉันพยายามเรียงลำดับมันเป็นเวลา 3 วัน !!
Tessaracter

9

ฉันมีข้อผิดพลาดเดียวกันกับแพคเกจที่ใช้งานไม่ได้คลิกและคลิก -armarmor, url-dispatcherหลังจากอัพเกรด 14.04 -> 14.10 -> 15.04

* อัพเดท:

ทางออกสำหรับฉันคือลบโฟลเดอร์แพ็คเกจrm -rv /usr/local/lib/python3.4/dist-packages/click แล้ว:

sudo apt-get update && sudo apt-get install -f

แหล่งโซลูชัน


เมื่อคุณเขียน "การลบแพ็คเกจ/usr/local/lib/python3.4/dist-packages/click" คุณหมายถึงการลบไฟล์/usr/local/lib/python3.4/dist-packages/clickหรือลบแพ็คเกจclick
Volker Siegel

1
การลบโฟลเดอร์ทั้งหมดด้วยตนเอง: rm -rv /usr/local/lib/python3.4/dist-packages/clickเพราะอะไร apt-get -f installหรือdpkg --reconfigure -a, apt-get autoremove -f click , apt-get purge clickงาน
Ihor Proskura

5
sudo apt-get remove click
sudo pip3 uninstall click
sudo pip uninstall click
sudo apt-get install click -f

ปัญหาคือผู้ใช้ที่อัปเกรดจำนวนมากจะมีเวอร์ชันของการคลิกติดตั้งพร้อมกับหมายเลขเวอร์ชันภายใต้ที่เก็บ pip หรือ pip3 ของพวกเขาซึ่งไม่ได้รับการจัดการโดย apt และพวกเขาจะให้ความสำคัญเมื่อ Python importถูกเรียกใช้คำสำคัญ

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


1
ฉันเป็นเพียงผู้ตรวจทาน: คุณสามารถคัดลอกทั้งหมดข้างต้นในคำตอบที่แท้จริงของคุณก่อนที่ระบบจะตัดสินใจลบคำตอบของคุณเพราะขาดคุณภาพหรือไม่? ;-)
Fabby

2

ติดตั้งคลิกอีกครั้งเพื่อติดตั้งการอ้างอิง

sudo apt-get install --reinstall click

จากนั้นลบออกด้วยคำสั่งนี้

sudo apt-get autoremove -f click

หากไม่ได้ผลให้ติดตั้ง python และ / หรือ python3:

sudo apt-get install --reinstall python
sudo apt-get install --reinstall python3
sudo apt-get install --reinstall python3-click

และอีกครั้ง

sudo apt-get autoremove -f click

ไม่มีอะไรช่วยฉันได้รับข้อผิดพลาดเดียวกัน
lahtis

อัปเดตคำตอบแล้ว
AB

ลองคำสั่งทั้งสามนี้sudo apt-get install --reinstall python; sudo apt-get install --reinstall python3; sudo apt-get install --reinstall python3-clickและอีกครั้งsudo apt-get autoremove -f click
AB

ไม่มีความช่วยเหลือการสืบค้นกลับ (การโทรล่าสุดครั้งล่าสุด): ไฟล์ "/ usr / bin / คลิก", ​​บรรทัดที่ 31 ใน <module> จากคำสั่งคลิกที่นำเข้า ImportError: ไม่สามารถนำเข้าชื่อ 'คำสั่ง' dpkg: แพ็คเกจการประมวลผลข้อผิดพลาด ):
lahtis

0

คุณสามารถลอง:

sudo dpkg --force-all -P click  

หรือ:

sudo dpkg --force-all -r click

1
แพ็คเกจเสียหายโดยสิ้นเชิงไม่สามารถติดตั้งหรือยกเลิกการติดตั้งแพ็กเกจ
lahtis

0

ในกรณีของฉันมันเป็นเพราะฉันยังมีการติดตั้ง python3 ในการคลิกผ่าน pip3 เมื่อฉันถอนการติดตั้ง python3 ทุกอย่างทำงานได้ดี

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