Computer >> คอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

แก้ไข:ไม่สามารถเปิดไฟล์ /var/lib/dpkg/status

คุณอาจได้รับข้อผิดพลาด "ไม่สามารถเปิดไฟล์ /var/lib/dpkg/status" ที่น่ารังเกียจหรือสิ่งที่คล้ายกันหากคุณเคยลองไปรอบ ๆ ไดเร็กทอรี /var/lib/dpkg/ และล้างข้อมูลต่างๆ ในฐานะผู้ใช้รูท ไฟล์ส่วนใหญ่ที่อยู่ใน /var ตาม Linux Filesystem Hierarchy Standard เป็นไฟล์ชั่วคราวและเปลี่ยนแปลงระหว่างการทำงาน อย่างไรก็ตาม นั่นไม่ได้หมายความว่าจะต้องล้างข้อมูลในลักษณะเดียวกับที่ต้องล้างแคชของเว็บเบราว์เซอร์

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

วิธีที่ 1:แก้ไขการสุ่มที่ดูเหมือนไม่สามารถเปิดไฟล์ได้ /var/lib/dpkg/status Error

หากข้อผิดพลาดนี้เป็นสีน้ำเงิน ให้พิมพ์ ls /var/lib/dpkg/status ที่บรรทัดคำสั่งและดูผลลัพธ์ แก้ไข:ไม่สามารถเปิดไฟล์ /var/lib/dpkg/status

คุณอาจต้องการใช้ตัวจัดการไฟล์แบบกราฟิกกับเบราว์เซอร์เพื่อดู แก้ไข:ไม่สามารถเปิดไฟล์ /var/lib/dpkg/status

ตรวจสอบให้แน่ใจว่าคุณเห็นไฟล์สถานะในผลลัพธ์ ปกติแล้วคุณจะเพิ่งได้รับบรรทัดที่อ่าน /var/lib/dpkg/status โดยไม่มีอะไรอื่นหลังจากนั้น ก่อนที่มันจะส่งคืนคุณตรงไปยังพรอมต์ หากเป็นกรณีนี้ แสดงว่าคุณมีไฟล์อยู่ที่นั่นและคุณน่าจะไม่เป็นไร ปิดโปรแกรมทั้งหมดที่คุณใช้งานอยู่หลังจากบันทึกแล้วรีบูต

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

หากไม่มีไฟล์ คุณจะต้องตัดสินใจบางอย่าง

วิธีที่ 2:กำลังสร้างใหม่ /var/lib/dpkg/status

ผู้ใช้บางคนสำรองข้อมูลสำคัญทั้งหมดไว้ที่จุดนี้ก่อนที่จะติดตั้ง Linux ใหม่ คุณสามารถทำได้ แต่อาจมีวิธีกอบกู้สิ่งต่างๆ ก่อน มีสำเนาสำรองของ /var/lib/dpkg/status ที่สร้างขึ้นโดยอัตโนมัติ และหวังว่าจะไม่ใช้เวลามากเกินไปเนื่องจากคุณได้รับข้อผิดพลาดที่ทำให้ไม่ซิงค์

ลองเรียกใช้ sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status ที่สถานีปลายทาง หากสิ่งนี้ไม่ได้ทำให้คุณมีข้อผิดพลาด คุณสามารถดูได้ว่าวิธีนี้แก้ไขปัญหาได้หรือไม่ การดำเนินการนี้จะกู้คืนสำเนาสำรองล่าสุดของไฟล์สถานะ แต่น่าเสียดายที่หากไฟล์เก่าเกินไป คุณอาจยังจมอยู่ในน้ำร้อน อย่างไรก็ตาม คุณสามารถรีสตาร์ทแล้วเรียกใช้ sudo apt-get update ตามด้วย sudo apt-get upgrade เพื่อดูว่ามีข้อผิดพลาดในการพึ่งพาประเภทใดบ้างที่จะเกิดขึ้นกับคุณ ในกรณีที่ดีที่สุด คุณจะไม่มีสิ่งใดเลย และคุณจะสามารถทำงานกับระบบของคุณต่อไปได้ตามปกติ

คุณยังสามารถลองสร้างรายการสถานะใหม่ พิมพ์ sudo touch /var/lib/dpkg/status เพื่อสร้างไฟล์ว่างในฐานะผู้ใช้รูทแล้วลอง sudo apt-get install long-list จากเทอร์มินัล มีสคริปต์บางตัวที่ทำสิ่งนี้โดยอัตโนมัติ แต่โดยพื้นฐานแล้วมันเป็นสิ่งเดียวกันและมาโดยไม่มีอันตรายจากการเรียกใช้สคริปต์ที่อาจล้าสมัยในเครื่องของคุณ ได้รับการเตือนว่าคุณจะต้องจำสิ่งที่คุณมีในระบบของคุณจึงจะใช้งานได้ และซอฟต์แวร์จะแจ้งให้คุณจำ

คุณยังสามารถลอง ls /var/backups/dpkg.status* และดูว่ามีอะไรที่คุณอาจต้องการใช้สำหรับสิ่งนี้แทน

แก้ไข:ไม่สามารถเปิดไฟล์ /var/lib/dpkg/status

ดูรายการที่เกิดขึ้นเมื่อคุณเรียกใช้ หากคุณเห็นไฟล์ที่ไม่ได้บีบอัด ให้ลอง sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status และดูว่าสิ่งนั้นแก้ไขได้หรือไม่ คุณสามารถคัดลอกอันอื่นและรันคำสั่ง gunzip เพื่อคลายการบีบอัดได้ อย่างไรก็ตาม พึงระลึกไว้เสมอว่ายิ่งย้อนไปมากเท่าไหร่ ความเสี่ยงในการอัปเดตไฟล์ที่ล้าสมัยซึ่งอาจทำให้การขึ้นต่อกันเสียหายได้สูงขึ้น