- - วิธีแก้ไขข้อผิดพลาด“ ไม่สามารถล็อคได้” บน Ubuntu

วิธีแก้ไขข้อผิดพลาด“ ไม่สามารถล็อคได้” บน Ubuntu

บางครั้งเมื่อพยายามติดตั้งซอฟต์แวร์Ubuntu ในเทอร์มินัลคุณจะเห็นข้อผิดพลาดล็อคไม่ได้ ข้อผิดพลาดนี้เกิดการระคายเคืองเพราะจะล็อคระบบและป้องกันไม่ให้คุณติดตั้งซอฟต์แวร์ที่คุณต้องการ

ไม่สามารถรับข้อผิดพลาดการล็อค

สาเหตุข้อผิดพลาดนี้เกิดขึ้นบ่อยครั้งผู้ใช้ Ubuntu จะปิดเทอร์มินัลที่ติดตั้งบางสิ่งก่อนกำหนดในขณะที่กำลังทำงาน เมื่อพวกเขาเปิดสถานีที่สองและพยายามใช้ตัวจัดการแพคเกจข้อผิดพลาด“ ไม่สามารถล็อคได้” จะปรากฏขึ้นเพราะไม่อนุญาตให้ระบบบรรจุภัณฑ์ทำงานมากกว่าหนึ่งอินสแตนซ์

ในขณะที่ดูได้ง่ายว่าทำไมผู้จัดการแพคเกจจะล็อคตัวเอง แต่ก็น่ารำคาญ น่าเศร้าเมื่อผู้ใช้ Ubuntu พบปัญหานี้พวกเขาตื่นตระหนกเนื่องจากระบบปฏิบัติการไม่ได้อธิบายวิธีแก้ไข

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

หมายเหตุ: คุณเป็นผู้ใช้ Debian หรือไม่? อย่าลังเลที่จะทำตาม! Ubuntu สร้างขึ้นบนระบบปฏิบัติการ Debian ดังนั้นคำสั่งที่เราใช้ในโพสต์นี้จะจับคู่อย่างสมบูรณ์แบบ! วิธีนี้จะใช้ได้กับ Linux Mint, Elementary OS และอนุพันธ์ Ubuntu อื่น ๆ ด้วย

ฆ่า Apt / Apt-get

ตามที่ระบุในบทนำของโพสต์นี้: เหตุผลที่ข้อผิดพลาด“ ไม่สามารถล็อคได้” ปรากฏขึ้นเมื่อตัวจัดการแพ็คเกจของ Ubuntu กำลังทำงานอยู่ (ในพื้นหลัง) และผู้ใช้พยายามเริ่มใหม่เป็นครั้งที่สอง

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

โชคดีที่ตัวจัดการแพคเกจ Ubuntu เป็นโปรแกรมที่เหมือนกันและสามารถจัดการได้เหมือนกัน

มีสองสามวิธีในการฆ่ากระบวนการบน Linux วิธีที่ดีที่สุด (และรวดเร็วที่สุด) คือการใช้ PS คำสั่งเพื่อรับ ID กระบวนการของกระบวนการปัญหา (ในกรณีนี้ Apt / Apt-get) จากนั้นใช้ ฆ่า คำสั่งเพื่อหยุดมัน

ดังนั้นในการเริ่มเปิดตัวเทอร์มินัลและเรียกใช้ ps aux สั่งด้วย Apt เมื่อสิ้นสุดการใช้งาน (หรือ Apt-get ถ้าคุณใช้งาน)

ps aux | egrep "apt"

หรือสำหรับผู้ใช้ Apt-get:

ps aux | egrep "apt-get"

ดูเทอร์มินัลแล้วอ่านตัวเลขที่ปรากฏในเอาต์พุต นั่นคือหมายเลขกระบวนการสำหรับผู้จัดการแพ็คเกจ ใช้หมายเลขนั้นและเสียบเข้ากับ ฆ่า สั่งให้หยุด

หมายเหตุ: เมื่อใช้คำสั่ง kill กับยูทิลิตีของระบบให้ใช้สวิตช์“ SIGTERM” หรือ“ SIGKILL” เสมอ หากคุณไม่ดำเนินการอาจจะไม่หยุดทำงาน

sudo kill -SIGKILL process-id-number

หรือ

sudo kill -SIGTERM process-id-number

เรียกใช้ ฆ่า คำสั่งควรจบกระบวนการตัวจัดการแพคเกจ หากคุณไม่แน่ใจว่าตัวจัดการแพคเกจของ Ubuntu ได้ถูกหยุดใช้งานจริงแล้วคุณสามารถเปิดใช้งานได้อีกครั้ง ps aux สั่งข้างต้นอีกครั้ง หากไม่มีหมายเลขกลับมาแสดงว่าปัญหาหมดไปและคุณจะสามารถใช้ตัวจัดการแพคเกจของ Ubuntu ได้อีกครั้ง!

ลบไฟล์ล็อค

ส่วนใหญ่แล้วหากตัวจัดการแพ็กเกจ Apt ติดอยู่ในพื้นหลังและไม่ตอบสนองกระบวนการสามารถสิ้นสุดได้ด้วย ฆ่า คำสั่ง อย่างไรก็ตามบางครั้งการสิ้นสุดกระบวนการไม่เพียงพอ

หากคุณพบข้อผิดพลาดและฆ่าตัวจัดการแพคเกจของ Ubuntu ไม่ช่วยมีวิธีอื่นที่คุณสามารถลองได้ มันเกี่ยวข้องกับการแก้ไขโดยตรงด้วย“ ล็อค” ที่เครื่องมือบรรจุภัณฑ์วางไว้บนคอมพิวเตอร์ของคุณ

ไฟล์ล็อคอยู่ในสามไดเรกทอรีแยกกัน ในการเข้าถึงไฟล์เซสชันเทอร์มินัลของคุณต้องมีการเข้าถึงรูท รูทการเข้าถึงบน Ubuntu ได้รับพร้อมกับ sudo คำสั่ง

sudo -s

หลังจากได้รับสิทธิ์การเข้าถึงรูต ซีดี ลงในไดเรกทอรีแรก

cd /var/lib/dpkg/
rm lock

หลังจากที่คุณดูแลไฟล์ล็อคไฟล์แรกแล้วก็ถึงเวลาจัดการกับไฟล์ที่สอง

cd /var/lib/apt/lists/
rm lock

เมื่อไฟล์ล็อคที่สองได้รับการดูแลให้กำจัดไฟล์ล็อคที่สามและไฟล์สุดท้าย

cd /var/cache/apt/archives/
rm lock

เมื่อไฟล์ล็อคทั้งสามถูกลบด้วย RM คำสั่งคุณจะดีและผู้จัดการแพคเกจ Ubuntu ควรเริ่มทำงานอีกครั้ง เพื่อทดสอบการทำงาน:

sudo apt update

แก้ไขแพ็คเกจที่เสียหาย

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

dpkg --configure -a

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

ความคิดเห็น