ข้อความนั้นเป็นเรื่องทั่วไป มันก็หมายความว่าdpkg
อินสแตนซ์ที่เรียกโดยapt
/ apt-get
ล้มเหลวด้วยเหตุผลบางอย่าง ไม่ได้อธิบายว่าทำไมวิธีหรือให้คำแนะนำวิธีการแก้ปัญหา ในฐานะข้อความวินิจฉัยมันไม่มีประโยชน์
คุณต้องอ่านบรรทัดก่อนข้อความ (บางครั้งก็เป็นจำนวนมาก) เพื่อค้นหาข้อผิดพลาดจริงที่ทำให้คุณไม่สามารถทำการติดตั้งให้เสร็จ
ใช่ แต่ฉันจะแก้มันได้อย่างไร
ไม่มีวิธีแก้ไขปัญหาเดียว มีสาเหตุหลายประการที่ทำให้สิ่งนี้เกิดขึ้นได้ว่ามันไร้ประโยชน์ในการพยายามแสดงรายการทั้งหมดในโพสต์เดียว แต่ละสถานการณ์มีลักษณะเฉพาะของแพ็คเกจ / สภาพแวดล้อมเกือบทั้งหมด
แต่มีการไถ่ถอน ความจริงที่ว่าคุณเห็นข้อความนี้หมายความว่าอาจมีข้อมูลที่เกี่ยวข้องมากขึ้นในบรรทัดก่อนข้อความ เพื่อเป็นตัวอย่างฉันจะใช้ตัวอย่าง:
(Reading database ... 81657 files and directories currently installed.)
Removing mongodb-10gen ...
arg: remove
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error processing mongodb-10gen (--remove):
subprocess installed pre-removal script returned error exit status 100
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 100
Errors were encountered while processing:
mongodb-10gen
E: Sub-process /usr/bin/dpkg returned an error code (1)
ตอนนี้เพื่อค้นหาปัญหาคุณต้องอ่านย้อนหลัง:
E: Sub-process /usr/bin/dpkg returned an error code (1)
ไม่ได้บอกอะไรที่มีประโยชน์ ดังนั้นเดินหน้าต่อไป
Errors were encountered while processing: mongodb-10gen
เพียงแค่บอกฉันว่าแพคเกจมีปัญหาอะไร มีประโยชน์ แต่ไม่เพียงพอ
subprocess installed post-installation script returned error exit status 100
: สิ่งนี้บอกฉันว่าสคริปต์ที่ล้มเหลวคือสคริปต์ที่ถูกpostinst
เรียกใช้ในการติดตั้งภายหลัง สิ่งนี้จะมีประโยชน์ในบางสถานการณ์ แต่ไม่ใช่ในสถานการณ์นี้
dpkg: error while cleaning up:
ไม่มีประโยชน์อะไรที่นี่
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
บิงโก! สิ่งนี้บอกเราว่าinvoke-rc.d
ไบนารีที่ควบคุมสคริปต์เริ่มต้นในระบบที่เหมือนเดเบียนส่วนใหญ่ล้มเหลว มันล้มเหลวเพราะหา/etc/init.d/mongodb
สคริปต์ไม่พบ นี้ไม่ดี. เราจำเป็นต้องสร้างหรือคัดลอกจากที่อื่นเพื่อให้มันเริ่มทำงานอีกครั้ง การติดตั้งแพ็กเกจfile not found
ซ้ำยังเป็นตัวเลือกสำหรับข้อผิดพลาด
ในกรณีนี้การรายงานข้อผิดพลาดไม่จำเป็นเพราะอาจเป็นไปได้ว่าเราเป็นคนที่ลบสคริปต์ แต่ถ้าคุณแน่ใจอย่างสมบูรณ์ว่าคุณไม่ได้แตะไฟล์ (a debsums -sla
ควรยืนยัน) จากนั้นรายงานข้อผิดพลาด
ดังนั้นอะไรคือสิ่งที่คุณต้องการความช่วยเหลือ เป็นการดีที่ผลลัพธ์ที่สมบูรณ์ของปัญหา นอกจากนี้ยังเป็นประโยชน์ในการรวมเอาท์พุทของsudo dpkg -C
และsudo apt-get check
และเอาต์พุตของapt-cache policy package1 package2...
ที่ "package1 package2 ... " รวมถึงแพ็กเกจทั้งหมดที่มีปัญหา
apt-get install (something)
apt-get upgrade (something)