แก้ไข: ไม่สามารถแก้ไขปัญหา 'คุณมีแพ็คเกจเสีย'

คุณอาจพบว่าเมื่อคุณพยายามติดตั้งแพ็คเกจบน Linux คุณพบบรรทัดที่น่ากลัวที่อ่านว่า E: ไม่สามารถแก้ไขปัญหาได้แสดงว่าคุณมีแพ็กเกจที่ใช้งานไม่ได้ จากนั้นการติดตั้งจะปฏิเสธที่จะดำเนินการนอกเหนือจากจุดนี้ คุณอาจพบสิ่งนี้ในการแจกจ่าย Linux ใด ๆ ที่ใช้ apt-get เพื่อจัดการแพ็คเกจซึ่งรวมถึง Debian ตลอดจน Linux Mint และ Ubuntu spin-off ต่างๆ

เกิดจากการอ้างอิงที่ไม่สมบูรณ์ซึ่งเป็นผลข้างเคียงจากการติดตั้งแพ็คเกจที่ขึ้นอยู่กับแพ็คเกจอื่น ๆ ที่ไม่ได้ติดตั้ง เมื่อ apt-get ไปติดตั้งบางสิ่งบางอย่างจะสังเกตเห็นว่าไม่มีการเข้าถึงบางสิ่งที่ต้องการจึงไม่สามารถดำเนินการต่อได้ เทคนิคบรรทัดคำสั่งพื้นฐานสองสามอย่างรวมถึงเครื่องมือกราฟิกสามารถแก้ไขทุกอย่างได้อย่างรวดเร็ว

วิธีที่ 1: ใช้ dpkg - กำหนดค่าเพื่อแก้ไขแพ็กเกจที่ใช้งานไม่ได้

ขณะทำงานที่เทอร์มินัลให้ลองรันsudo dpkg –configure -aเพื่อเริ่มกระบวนการอัปเดตอัตโนมัติที่ค้นหาการอ้างอิงที่เสียหายในระบบของคุณที่เกิดจากแพ็คเกจที่ไม่ได้ติดตั้ง เครื่องมือนี้ควรติดตั้งแพ็คเกจใด ๆ โดยอัตโนมัติที่รู้สึกว่าคุณหายไปโดยไม่มีการแทรกแซงของผู้ใช้แม้ว่าคุณจะถูกขอให้ติดตั้งบางอย่างคุณควรกดปุ่ม y เพื่อตอบสนองต่อการแจ้งเตือน

หากไม่พบแพ็กเกจที่เสียหายคุณจะไม่เห็นผลลัพธ์ใด ๆ เรารันสิ่งนี้บนเครื่องทดสอบที่ใช้ Xubuntu ดังนั้นจึงไม่พบข้อผิดพลาดใด ๆ แต่หากคุณได้รับปัญหา“ ไม่สามารถแก้ไขปัญหาคุณมีปัญหาแพคเกจที่เสียหาย” สิ่งนี้อาจพบหลายแพ็คเกจที่คุณต้องติดตั้ง . เมื่อคุณเรียกใช้แล้วให้ลองsudo apt-get install -fจากบรรทัดคำสั่ง

โปรแกรมนี้จะดำเนินการและสร้างรายการอ้างอิงจากนั้นอ่านข้อมูลสถานะ หากคุณได้รับข้อความแจ้งว่ามีแพ็กเกจ“ อัปเกรด 0, 0 ติดตั้งใหม่, 0 ที่จะลบและ 0 ไม่ได้อัปเกรด” แสดงว่าคุณกำลังทำงานโดยไม่มีการอ้างอิงที่เสียหายหรือคำสั่งก่อนหน้าได้แก้ไขทุกอย่าง ณ จุดนี้คุณสามารถเรียกใช้sudo apt-get clean && sudo apt-get updateตามด้วยsudo apt-get upgradeเพื่ออัปเดตทุกแพ็คเกจในระบบของคุณ การดำเนินการนี้อาจใช้เวลาสักครู่ขึ้นอยู่กับระยะเวลาที่ระบบของคุณมีปัญหาเกี่ยวกับแพ็คเกจเหล่านี้

วิธีที่ 2: การใช้คำสั่ง dist-upgrade

หากคุณได้รับข้อความแจ้งว่า“ บางแพ็คเกจถูกระงับ” ดังนั้นคุณจึงไม่สามารถทำตามคำสั่งก่อนหน้านี้ได้สำเร็จคุณควรเรียกใช้sudo apt-get dist-upgradeเพื่อติดตั้งแพ็คเกจที่เหลือเหล่านี้ เช่นเดียวกับการใช้งานฟังก์ชันของการอัปเกรดปกติตัวเลือกการอัปเกรด dist จะจัดการการอ้างอิงที่เปลี่ยนแปลงกับแพ็คเกจเวอร์ชันใหม่ เนื่องจาก apt-get มีระบบความขัดแย้งพิเศษจึงมักจะพยายามอัปเกรดแพ็คเกจที่สำคัญที่สุดโดยเสียค่าใช้จ่ายโดยไม่ต้องทำอะไรกับระบบที่มีความสำคัญน้อยกว่า การใช้คำสั่งนี้บังคับให้แม้แต่ผู้ที่อัปเดต

ดังที่กล่าวไว้หากตรวจไม่พบแพ็กเกจที่เสียคุณจะพบข้อความที่สามว่าไม่มีการอัปเกรดและไม่มีการติดตั้งใหม่ หากเป็นกรณีนี้คุณสามารถลองsudo apt-get upgradeอีกครั้งเพื่อที่ว่าหากมีการเปลี่ยนแปลงใด ๆ รูทีนย่อยการอัพเกรดอัตโนมัติจะสามารถระงับได้ ในทางกลับกันหากคุณทราบชื่อเฉพาะของแพ็กเกจที่คุณต้องการคุณสามารถติดตั้งด้วยตนเองได้

ตัวอย่างเช่นสมมติว่าคอมโพเนนต์รันไทม์ GNUStep เป็นสิ่งที่คุณขาดไปเนื่องจากคุณต้องการใช้การสังเคราะห์เสียง คุณสามารถพิมพ์sudo apt-get install gnustep-gui-runtimeเพื่อติดตั้งแพ็คเกจที่สำคัญนี้ โปรดทราบว่านี่เป็นเพียงตัวอย่างและคุณสามารถแทนที่ gnustep-gui-runtime ด้วยชื่อของแพ็คเกจที่คุณต้องการติดตั้งได้ การแจกแจงสมัยใหม่ตามมาตรฐาน apt-get มีแพ็คเกจหลายพันแพ็คเกจ แต่ตราบใดที่คุณรู้ชื่อของสิ่งที่คุณกำลังมองหาสิ่งนี้จะบังคับให้ติดตั้ง

วิธีที่ 3: แก้ไขแพ็คเกจที่เสียด้วย Synaptic

หากคุณมีตัวจัดการแพ็คเกจกราฟิก Synaptic คุณยังสามารถใช้เครื่องมือนี้เพื่อแก้ไขแพ็คเกจที่เสียหายที่คุณอาจมี เปิดโปรแกรมจากนั้นเลือกเมนูแก้ไขรายการเลือกแบบเลื่อนลง คุณควรมีตัวเลือก“ Fix Broken Packages” ในเมนูนี้ดังนั้นให้เลือกหากคุณมี จะใช้เวลาไม่นานในการรันหากไม่มีแพ็กเกจที่ใช้งานไม่ได้มากนัก แต่อาจพบข้อผิดพลาดหลายประการซึ่งจะทำให้การทำงานช้าลง

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

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