ในขณะที่ใช้ คำสั่ง apt-get หรือค่อนข้างใหม่ เครื่องมือจัดการแพ็คเกจ APT ใน Ubuntu Linux หรืออนุพันธ์เช่น Linux Mint (ซึ่งจริง ๆ แล้วฉันใช้เป็นระบบปฏิบัติการหลักในการทำงานประจำวัน) คุณอาจพบข้อผิดพลาด – “ไม่สามารถล็อกไดเร็กทอรีการดูแลระบบ (/var/lib/dpkg/) เป็นอีกกระบวนการหนึ่งที่ใช้มัน” บนบรรทัดคำสั่ง
ข้อผิดพลาดนี้อาจสร้างความรำคาญให้กับผู้ใช้ Linux (Ubuntu) ใหม่ที่อาจไม่ทราบสาเหตุของข้อผิดพลาดอย่างแน่นอน
ด้านล่างนี้เป็นตัวอย่างที่แสดงข้อผิดพลาดของไฟล์ล็อคใน Ubuntu 16.10:
[ป้องกันอีเมล]:~$ sudo apt ติดตั้ง neofetch[sudo] รหัสผ่านสำหรับ tecmint: E: ไม่สามารถล็อกได้ /var/lib/dpkg/lock - เปิด (11: ทรัพยากรใช้งานไม่ได้ชั่วคราว) E: ไม่สามารถล็อกไดเร็กทอรีการดูแลระบบ (/var/lib/dpkg) เป็นกระบวนการอื่นที่ใช้หรือไม่
ผลลัพธ์ด้านล่างเป็นอีกตัวอย่างหนึ่งที่เป็นไปได้ของข้อผิดพลาดเดียวกัน:
E: ไม่สามารถล็อกได้ /var/lib/apt/lists/lock - เปิด (11: ทรัพยากรใช้งานไม่ได้ชั่วคราว) E: ไม่สามารถล็อกไดเร็กทอรี /var/lib/apt/lists/ E: ไม่สามารถล็อกไดเร็กทอรี /var/lib/dpkg/lock - open (11: Resource ไม่พร้อมใช้งานชั่วคราว) E: ไม่สามารถล็อกไดเร็กทอรีการดูแลระบบ (/var/lib/dpkg/) เป็นกระบวนการอื่นที่ใช้ มัน?
คุณจะแก้ไขข้อผิดพลาดข้างต้นได้อย่างไรในกรณีที่คุณเจอปัญหาในอนาคต? มีหลายวิธีในการจัดการกับข้อผิดพลาดนี้ แต่ในคู่มือนี้ เราจะพูดถึงสองวิธีที่ง่ายที่สุดและอาจเป็นวิธีที่มีประสิทธิภาพมากที่สุดในการแก้ไข
เรียกใช้คำสั่งด้านล่างเพื่อ สร้างรายการกระบวนการทั้งหมด ซึ่งชื่อประกอบด้วยคำว่า ฉลาดคุณจะได้รับรายการรวมของทั้งหมด ฉลาด หรือ apt-get กระบวนการโดยใช้ ปล
และ คำสั่ง grep พร้อมกับท่อ
$ ps -A | ฉลาดหลักแหลม
แต่ละ apt-get หรือ ฉลาด กระบวนการที่คุณเห็นในผลลัพธ์ของคำสั่งด้านบน ฆ่าแต่ละกระบวนการ โดยใช้คำสั่งด้านล่าง
กระบวนการ NS (PID) พบได้ในคอลัมน์แรกจากภาพหน้าจอด้านบน
$ sudo kill -9 หมายเลขกระบวนการ หรือ. $ sudo kill -SIGKILL หมายเลขกระบวนการ
ตัวอย่างเช่น ในคำสั่งด้านล่างโดยที่ 9
เป็นหมายเลขสัญญาณสำหรับ ซิกคิลล์ สัญญาณจะฆ่าก่อน ฉลาด กระบวนการ:
$ sudo ฆ่า -9 13431 หรือ. $ sudo ฆ่า -SIGKILL 13431
ไฟล์ล็อคเพียงป้องกันการเข้าถึงไฟล์อื่นหรือข้อมูลบางอย่างบนระบบ Linux ของคุณ แนวคิดนี้มีอยู่ใน Windows และระบบปฏิบัติการอื่นๆ ด้วย
เมื่อคุณเรียกใช้ an apt-get หรือ ฉลาด คำสั่ง ล็อกไฟล์จะถูกสร้างขึ้นภายใต้ไดเร็กทอรีเหล่านี้ /var/lib/apt/lists/, /var/lib/dpkg/ และ /var/cache/apt/archives/.
สิ่งนี้จะช่วยหลีกเลี่ยง apt-get หรือ ฉลาด กระบวนการที่กำลังทำงานอยู่แล้วจากการถูกขัดจังหวะโดยผู้ใช้หรือกระบวนการระบบอื่น ๆ ที่จะต้องทำงานกับไฟล์ที่ใช้โดย apt-get หรือ apt เมื่อดำเนินการเสร็จสิ้น ไฟล์ล็อคจะถูกลบออก
สำคัญ: ในกรณีที่การล็อกยังคงออกจากสองไดเร็กทอรีด้านบนโดยไม่มีกระบวนการ apt-get หรือ apt ที่สังเกตเห็นได้ชัดเจน การดำเนินการนี้อาจ หมายถึงกระบวนการถูกระงับด้วยเหตุผลใดสาเหตุหนึ่งดังนั้นคุณต้องลบไฟล์ล็อคเพื่อล้าง ข้อผิดพลาด.
ขั้นแรกให้รันคำสั่งด้านล่างเพื่อลบไฟล์ล็อคในไฟล์ /var/lib/dpkg/
ไดเรกทอรี:
$ sudo rm /var/lib/dpkg/lock.$ sudo rm /var/lib/dpkg/ล็อค
หลังจากนั้นบังคับให้แพ็คเกจกำหนดค่าใหม่ดังนี้:
$ sudo dpkg --configure -a
หรือลบไฟล์ล็อคใน /var/lib/apt/lists/
และไดเร็กทอรีแคชดังนี้:
$ sudo rm /var/lib/apt/lists/lock. $ sudo rm /var/cache/apt/archives/lock.dll
ถัดไป อัพเดตรายการแหล่งที่มาของแพ็คเกจดังนี้:
$ sudo apt อัปเดต หรือ. $ sudo apt-get อัปเดต
โดยสรุป เราได้ดำเนินการผ่านสองวิธีที่สำคัญในการจัดการกับปัญหาทั่วไปที่ผู้ใช้อูบุนตู (และอนุพันธ์) เผชิญอยู่ขณะทำงาน apt-get หรือ ฉลาด เช่นกัน คำสั่งความถนัด.
คุณมีวิธีอื่นที่น่าเชื่อถือในการแบ่งปันเพื่อจัดการกับข้อผิดพลาดทั่วไปนี้หรือไม่? จากนั้นติดต่อเราผ่านแบบฟอร์มข้อเสนอแนะด้านล่าง
นอกจากนี้คุณอาจต้องการเรียนรู้เช่นกัน วิธีค้นหาและฆ่ากระบวนการที่ทำงานอยู่ และอ่านคำแนะนำง่ายๆ เกี่ยวกับ คำสั่ง kill, pkill และ killall เพื่อยุติกระบวนการ ในลินุกซ์