ไม่สามารถล็อกไดเร็กทอรีการจัดการ (/ var / lib / dpkg /) เป็นกระบวนการอื่นที่ใช้หรือไม่


1024

ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามใช้apt-get:

E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/) is another process using it?  

ฉันจะแก้ไขสิ่งนี้ได้อย่างไร


18
สิ่งนี้เป็นจริงเช่นกันหากคุณรีบูท? อาจจะมีเธรด apt เก่า ๆ กำลังล็อคไฟล์อยู่คุณจำเป็นต้องค้นหาว่าอะไรและฆ่ามันหรือเพียงแค่รีบูตเครื่องก็ทำได้
Bruno Pereira

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

54
คุณสามารถใช้sudo lsof /var/lib/dpkg/lockเพื่อค้นหากระบวนการที่เป็นเจ้าของไฟล์ล็อค (หากว่างเปล่าถือว่าการล็อกนั้นค้างอยู่จากการบู๊ตครั้งก่อนและสามารถเป็นsudo rmd) จากนั้นให้พิจารณาทำsudo kill -9 <PID>(รับ <PID> จากlsofเอาต์พุต
waltinator

11
นี่อาจเป็นสัญญาณว่ามีบางอย่างกำลังติดตั้งหรือลบซอฟต์แวร์และล็อคฐานข้อมูล apt ในขณะที่ดำเนินการ
Foreever

5
ใน Ubuntu 18.04 VM ของฉันมีกระบวนการที่เรียกว่า unattended-update ซึ่งดำเนินการโดยกระบวนการเช่นroot <pid> <ppid> 0 15:58 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held installซึ่งดูเหมือนว่าจะเรียกใช้การปรับปรุง apt ทุกครั้งที่เปิดเครื่อง ขึ้นอยู่กับขนาดของการอัปเดต (ซึ่งมักจะตรงกับระยะเวลาที่ผ่านมาตั้งแต่ฉันใช้เครื่องครั้งล่าสุด) สามารถใช้เวลา 1-10 นาทีในการดำเนินการให้เสร็จสมบูรณ์ หลังจากนั้นล็อคจะได้รับการติดตั้งและอัพเดทด้วยตนเอง ลอง: sudo ps aux|grep aptหรือ `sudo ps aux | grep แบบอัตโนมัติ
Kjetil S.

คำตอบ:


871

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

คุณสามารถลบไฟล์ล็อคด้วยคำสั่งต่อไปนี้:

sudo rm /var/lib/apt/lists/lock

คุณอาจต้องลบไฟล์ล็อคในไดเรกทอรีแคช

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

หลังจากนั้นให้ลองเปิด Synaptic อีกครั้ง


13
ตกลง ... แต่ทำไมถึงเกิดขึ้นแบบนี้?
Jaime Hablutzel

40
@ Jaime: อาจ apt-get (หรือส่วนหน้า GUI บางส่วน) ถูกหยุดขณะที่ดำเนินการโดยปล่อยให้ apt อยู่ในสถานะถูกล็อค
bouke

10
ฉันจะยอมรับสิ่งนี้เป็นคำตอบที่ดีที่สุด แก้ไขให้ถูกต้อง
Anwar

9
@AnwarShah ไม่มีข้อควรพิจารณาอื่น ๆ ก่อนที่จะไปรอบ ๆ การลบไฟล์ของระบบ
Braiam

22
rm / var / lib / dpkg / lock; dpkg - กำหนดค่า -a:
WitchCraft

664

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

ถ้าคุณลอง

ps aux | grep [a]pt

หรือ

pgrep -a apt

ที่จะจับกระบวนการที่มีคำว่าaptอย่างน้อย หากคุณเห็นapt-getกระบวนการหรือaptitudeกระบวนการที่ติดขัดคุณสามารถลอง

sudo kill processnumber

และถ้ามันไม่ทำงานลอง

sudo kill -9 processnumber

การดำเนินการนี้จะฆ่ากระบวนการและอาจนำการล็อคออก การฆ่าaptหรือaptitudeกระบวนการนั้นไม่เป็นอันตรายเว้นแต่ว่ามันจะอยู่ระหว่างการติดตั้งแพ็กเกจ ไม่ว่าในกรณีใดหากกระบวนการติดขัดคุณอาจไม่มีทางเลือก แต่ต้องฆ่ามัน

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

การฆ่าapt-getหรือaptitudeกระบวนการนั้นปลอดภัยกว่ามาก


18
@Link ฉันไม่คิดว่าการฆ่าdpkgเป็นความคิดที่ดีเพราะโดยปกติแล้วdpkgจะจัดการกับฐานข้อมูลแพ็คเกจโดยตรงและอาจทำให้เกิดความเสียหายได้
Faheem Mitha

18
หากการฆ่า dpkg อาจทำให้ฐานข้อมูลเสียหายได้ dpkg ได้รับการออกแบบมาไม่ดี ระยะเวลา
Jay Sullivan

10
สำหรับฉันนี่ทำให้เกิดข้อผิดพลาดdpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.เมื่อทำงานsudo apt-get dist-upgradeอีกครั้ง การรันคำสั่งจากนั้นแก้ไขปัญหา ฉันรักห้าม!
Wayne Phipps

5
หมายเหตุkillall apt-getทำสิ่งเดียวกันกับps/ killคอมโบของคุณ
Cerin

3
โปรดทราบว่าฉันพบว่าฉันจำเป็นต้องเรียกใช้sudo dkpg --configure -aหลังจากฆ่ากระบวนการฉลาดคนขี้โกงเพื่อให้สิ่งต่าง ๆ กลับมาเป็นปกติ
starbeamrainbowlabs

219

ลบ/var/lib/dpkg/lockไฟล์และบังคับใช้การกำหนดค่าแพ็กเกจใหม่

sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a

มันควรจะทำงานหลังจากนี้


คำสั่งเหล่านี้ช่วย แต่ตอนนี้เมื่อฉันพยายามติดตั้งอีกครั้งได้รับคำตอบนี้: ไม่สามารถล็อค / var / cache / apt / archives / lock - open ฉันคิดว่าฉันต้องทำเช่นเดียวกับปัญหาการปลดล็อคก่อนหน้านี้ แต่โปรดบอกคำหลักที่แน่นอนสำหรับคำสั่ง ฉันเป็นผู้เริ่มต้นแน่นอน
kern

1
sudo- รันคำสั่งในฐานะรูท rm- ลบไฟล์ อาจจะลองsudo rm /var/cache/apt/archives/lock
kubahaha

5
นี่ไม่ใช่คำแนะนำที่ดี: การถอดโชคออกมาอย่างเด็ดขาดอาจทำให้สถานะของ dpkg เสียหายได้
poolie

5
ทำไมมันถึงไม่แก้ไขตัวเองในทุกวันนี้?
แมเรียนKlühspies

2
สิ่งนี้ใช้ได้สำหรับฉัน aws ด้านบนไม่ได้
1rq3fea324wre

108

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

มิฉะนั้นนี่เป็นสัญญาณว่ามีบางอย่างกำลังติดตั้งหรือลบซอฟต์แวร์และล็อคฐานข้อมูล apt ในขณะที่ดำเนินการ โปรแกรมที่สามารถทำได้คือ:

  • ศูนย์ซอฟต์แวร์
  • Update Manager
  • โปรแกรมติดตั้งลิงก์ apt (ฉันคิดว่าตอนนี้ผ่าน SC)
  • โปรแกรมอรรถประโยชน์บรรทัดคำสั่ง apt-get หรือ aptitude
  • ผู้จัดการแพคเกจ Synaptic

สำคัญ: ลองใช้วิธีด้านล่างนี้เป็นทางเลือกสุดท้ายเนื่องจากอาจทำให้ระบบของคุณเสียหาย ความพยายามครั้งแรกฆ่าเช่นการทำงานใด ๆaptหรือaptitudeตามที่อธิบายไว้ในคำตอบของ Faheem

คุณสามารถบังคับให้ปิดการล็อกได้โดยการลบไฟล์ แต่ไม่แนะนำโดยไม่ต้องปิดโปรแกรมที่เก็บล็อคไว้อย่างปลอดภัยเนื่องจากคุณอาจทำให้เกิดความเสียหายหรือขัดจังหวะการติดตั้ง (ไม่ดี) คำสั่งที่ให้บริการโดยJoãoควรปิดโปรแกรมที่มีการล็อคแล้วเอาล็อคออก แต่จะไม่ป้องกันคุณจากการติดตั้งขัดจังหวะ:

sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock   

และสามารถใช้คำสั่งเดียวกันสำหรับล็อคแคช apt:

sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock

5
ฉันกำลังอัปเดตซอฟต์แวร์เมื่อได้รับข้อความแสดงข้อผิดพลาด
น้ำฝน

20
สิ่งนี้ขัดข้องสำหรับฉัน
umpirsky

5
sudo fuser -cuk /var/cache/apt/archives/lockรีบูตคอมพิวเตอร์ของฉันโดยตรง apt-getถูกปลดล็อคแล้ว
Maxime R.

15
นี่ทำให้เซิร์ฟเวอร์ของฉันทั้งหมดขัดข้อง
에이바

5
การฆ่า apt หรือ dpkg ครึ่งทางไม่ใช่ความคิดที่ดี
poolie

99

วิธีที่น่าจะเป็นไปได้มากที่สุดคือ:

  • บูต Ubuntu
  • เริ่มต้นเทอร์มินัล
  • ชนิด sudo apt-get install whatever

และบรรทัดคำสั่งaptทับซ้อนกับupdate-managerการสำรวจโดยอัตโนมัติ

ดังนั้นหากคุณลองอีกครั้งในไม่กี่นาทีก็ควรแก้ไข


21
คำแนะนำที่ดีในทางตรงกันข้ามกับการตอบครึ่งโหลแนะนำให้เพียงลบไฟล์ ;-) ฉันสุ่มวิ่งในปัญหาและเป็นไปได้มากว่านี่คือมัน!
อเล็กซ์

2
ปลอดภัยพอต้องรอสักครู่ก่อนที่จะsudo apt-get installสามารถทำงานได้
sargas

นี่มันใช้งานไม่ได้ใช่ฉันใช้รีบูตหลายครั้ง ถ้ามันไม่เหมาะสมลองaskubuntu.com/a/315791/378845นี้ก่อนที่คุณจะเอาตัวล็อคออก
Menuka Ishan

@menuka ทำไมไม่ปล่อยให้มันเสร็จ
poolie

@poolie เนื่องจากมีข้อ จำกัด อื่น ๆ ที่จะหยุดกระบวนการจากการเสร็จสิ้น
Menuka Ishan

52

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

ลองใช้คำสั่งนี้ในเทอร์มินัลเพื่อค้นหาสิ่งที่กำลังทำงานอยู่

ps -e | grep -e apt -e adept | grep -v grep

หมายเหตุ:
หากไม่ได้พิมพ์อะไรให้พิมพ์ต่อไปนี้ในเทอร์มินัลเพื่อลบล็อค

sudo rm /var/lib/dpkg/lock    
sudo rm /var/cache/apt/archives/lock

ตอนนี้คุณสามารถติดตั้งแพคเกจใด ๆ


9
การลบไฟล์ล็อคคือสิ่งที่ฉันจะพิจารณาว่าเป็นสิ่งอันตรายที่ต้องทำ หากกระบวนการอื่นกำลังล็อคด้วยเหตุผลที่ถูกต้อง - และคุณลบไฟล์ล็อคนั้นและบังคับให้ติดตั้งกับสิ่งที่คุณทำมาก่อน - คุณอาจส่งผลกระทบร้ายแรงต่อระบบของคุณอย่างจริงจัง
Marco Ceppi

5
นั่นเป็นเหตุผลที่ฉันได้ระบุไว้ใน Note.If ทั้งหมดข้างต้นล้มเหลววิธีเดียวคือการลบล็อคมันจะไม่ทำให้เกิดปัญหาใด ๆ ตราบใดที่กระบวนการ dpkg และ apt-get / aptitude ไม่ทำงาน
karthick87

pgrep -f 'apt|adept|dpkg'สั้นกว่ามาก
dhchdhd

ขอบคุณ! งานนี้ pgrep -f 'apt | adept | dpkg' และทักษะ sudo (หมายเลข), ฆ่าหมายเลขทั้งหมดแล้วจึงติดตั้งได้!
ผู้สร้าง

@Barry ที่จะตรงกับเส้นทาง + กระบวนการทั้งหมด ฉันคิดว่าpgrep -a 'apt|adept|dpkg'มันสั้นกว่าดีกว่า
Pablo

46

จนถึงวิธีที่ดีที่สุดในการทำให้มันทำงานโดยไม่ทำลายพื้นหลังที่เป็นไปได้ในการติดตั้ง (ซึ่งอาจเกิดขึ้นได้โดยการลบไฟล์ล็อค) กำลังหยุดบริการโดยใช้ apt:

ข้อผิดพลาด:

# sudo apt-get upgrade
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?`

วิธีการแก้:

sudo systemctl stop apt-daily.timer

หลังจากอัปเกรดระบบฉันขอแนะนำให้เปิดใช้งานอีกครั้งเนื่องจากการล็อคบั๊กมันสามารถแก้ไขได้ด้วยการอัปเกรด

sudo systemctl start apt-daily.timer

ฉันยังไม่ได้ตรวจสอบข้อผิดพลาดนี้ได้รับการแก้ไขหลังจากการอัพเกรด ฉันจะเพิ่มความคิดเห็นใหม่เมื่อฉันได้รับการยืนยันแล้ว


หลังจากอัปเกรดระบบและเริ่มบริการ apt-daily.timer อีกครั้งฉันยังไม่พบปัญหานี้
Jairelee

นี่อาจเป็นวิธีที่สะอาดที่สุดเมื่อเทียบกับคำตอบที่ได้คะแนนสูงกว่าทั้งหมด มันใช้งานได้ในกรณีของฉันอย่างไม่มีที่ติขอบคุณ!
CygnusX1

สิ่งนี้ทำงานได้อย่างไร้ที่ติในวันที่ 17.10 เช่นกัน
Elder Geek

ทำงานอยู่ที่ 17.10 1
Eng.Fouad

2
ทำงานได้ดีใน 18.04 :)
Naveen Kumar V

33

ก่อนอื่นเราควรตรวจสอบว่ากระบวนการสร้างไฟล์ล็อคโดยใช้lsof:

sudo lsof /var/lib/dpkg/lock

หรือในสถานการณ์อื่นที่/var/lib/apt/lists/lockมีปัญหา:

sudo lsof /var/lib/apt/lists/lock

ผลลัพธ์จะใกล้เคียงกับสิ่งที่ชอบ:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
apt-get   12127 root   4uW  REG  252,1        0    86   /var/lib/apt/lists/lock

แล้วเราควรตรวจสอบสิ่งที่ commad จะทำเราสามารถหามันออกมาใช้ps, pgrepฯลฯ ; คำสั่งคือapt-getดังนั้นฉันทำงาน:

pgrep apt-get -a

-aสวิทช์แสดงรายการคำสั่งเต็มรูปแบบสำหรับฉันในกรณีของฉันมันเป็น:

 pgrep -a apt-get
 12127 apt-get update

เราเห็นได้ว่ามันกำลังรันคำupdateสั่งย่อยอยู่ฉันสามารถรันบางสิ่งเช่นนี้ได้:

ps -f 12127

ซึ่งผลิต:

UID        PID  PPID  C STIME TTY      STAT   TIME CMD
root     12127 12126  0 09:39 pts/0    S+     0:00 apt-get update

ในกรณีนี้ฉันจะรอสักครู่เพื่อให้ทรัพยากรมีอิสระและหากหลังจาก 2 หรือ 3 นาทียังคงมีปัญหาหรือคำสั่งเป็นสิ่งที่ฉันไม่สนใจหรือไม่เป็นอันตรายต่อระบบ (เช่นนี้apt-get update) ฉันส่งSIGTERMไปยัง กระบวนการ:

sudo kill -15 12127

มันควรทำงานถ้าไม่ฉันจะส่งSIGINTเวลานี้ (มันเหมือนกับการกดCTRL+ C):

sudo kill -2 12127

หากไม่ได้ผลเช่นกันเราควรส่งSIGHUP( kill -1) และสุดท้ายหากไม่มีสิ่งใดที่ฉันสามารถฆ่ากระบวนการได้:

sudo kill -9 12127

หรือ

sudo pkill -9 apt-get

จากนั้นฉันลบทรัพยากรไม่ว่าง:

sudo rm /var/lib/apt/lists/lock

สิ่งหนึ่งที่เล็ก ๆ น้อย ๆ ก็คือ/var/lib/dpkg/lockแทนที่จะ/var/lib/apt/lists/lockเป็นไฟล์ในคำถาม
Chai T. Rex

1
ขอบคุณพระเจ้ารากที่มีคนกล่าวถึงที่สุดและpgrep pkill
dhchdhd

1
นี่ควรเป็นคำตอบที่ยอมรับได้
Marwan Nabil

หากการติดตั้งหรืออัปเกรดทำให้นี่dpkg --configure -aอาจจำเป็นเช่นกัน
LUXS

สิ่งนี้ใช้ได้สำหรับฉัน
Sundeep

21

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

ในกรณีนี้ให้รอสองสามวินาที (หรือมากกว่านั้นหากการอัปเดตครั้งล่าสุดของคุณนานแล้ว) เพื่อให้เสร็จสมบูรณ์หรือเปิดตัว Update Manager เพื่อตรวจสอบสถานะ


ฉันมีสิ่งนี้ถูกต้องหลังจากติดตั้ง Ubuntu 16.04 ปรากฎว่ามีกระบวนการพื้นหลังในศูนย์ซอฟต์แวร์ Ubuntu ที่รอให้ฉันติดตั้งการปรับปรุงด้วยตนเอง
jvriesem

เหมือนกันหลังจากติดตั้งใหม่ของ 16.04 มันยาวเกินกว่า "สองสามวินาที" ในกรณีของฉัน (ฉันมีเวลาอ่านหน้าคำถาม & คำตอบทั้งหมดนี้!) แต่หลังจากรีเฟรชpsสองสามครั้งฉันเห็นว่าdpkgมีการอัปเดตเนื้อหาทั้งหมดและฉันรออย่างอดทนเพื่อให้เสร็จ . ฉันรันSoftware Updaterจนกระทั่งทุกอย่างทันสมัยก่อนที่จะพยายามติดตั้งสิ่งใหม่
Charlie Joynt

16

สิ่งนี้จะเกิดขึ้นหากคุณมี 'Update Manager' ทำงานพร้อมกันสำหรับการตรวจสอบการอัปเดตใด ๆ หรือการติดตั้งเมื่อกระบวนการติดตั้งล็อค หากคุณพบข้อผิดพลาดเดียวกันโดยไม่ใช้ 'Update Manager' คุณต้องลบออก/var/lib/dgkg/lockซึ่งแน่นอนว่าคุณจะไม่สามารถทำได้ด้วยตนเอง

sudo fuser -cuk /var/lib/dpkg/lock
sudo rm -f /var/lib/dpkg/lock

ทำงานได้ดี นำมาจาก: https://askubuntu.com/a/15469/68707


1
นี่เป็นปัญหาในกรณีของฉัน!
LondonRob

1
ทางออกที่ดีกว่าเนื่องจากคำสั่ง fuser ใช้เพื่อติดตามกระบวนการอื่น ๆ (ถ้ายังมีชีวิตอยู่)
Lars Nordin

16

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


1
ดูเหมือนว่าเป็นความคิดเห็นมากกว่าคำตอบ คุณสามารถย้ายสิ่งนี้แทนความคิดเห็นไปยังคำตอบที่มันตอบกลับไปได้หรือไม่
jvriesem

4
@ jvriesem ฉันคิดว่านี่เป็นคำตอบที่สำคัญมากเพราะประเด็นที่เขาทำคือสิ่งที่ขาดหายไปจากคำตอบอื่น ๆ อีกมากมาย!
Volker Siegel

@jvriesem นี่คือคำตอบที่ถูกต้อง ฉันพบปัญหานี้บ่อยครั้งที่มีตู้บรรจุ linux ของฉันเมื่อฉันไม่ได้ใช้งานเป็นเวลานาน รอสักครู่. ใช่มันอาจจะสักครู่ แต่ปล่อยให้มันทำงานก่อนที่จะเข้าไปรบกวนสิ่งต่างๆ
earth2jason

นี่เป็นสิ่งแรกที่ควรลอง คำตอบนี้ส่วนใหญ่แก้ไขปัญหาได้แล้ว ฉันอาจจะมี 4-5 ครั้งและการรีบูตจะแก้ไขได้เสมอ
Jan

10

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


1
ขึ้นอยู่กับว่าบูท distro นั้นถูกบูทนานแค่ครึ่งชั่วโมง แต่อาจเหมาะที่จะให้ distro ของคุณทำงานให้เสร็จก่อนที่จะรบกวนสิ่งต่าง ๆ
earth2jason

6

ในกรณีของฉันฉันต้องรอเป็นเวลาหลายนาทีเพื่อให้การปลดล็อค (ดูเหมือนว่าaptเคยใช้มัน) ทั้งหมดนี้เกิดขึ้นทันทีหลังจากบูตระบบ


4

เพียงแค่sudo rm -f /var/lib/apt/lists/lockลองอีกครั้ง

apt-fast อาจต้องรับผิดชอบในการปลดล็อคอย่างไม่เหมาะสม สิ่งนี้เกิดขึ้นบางครั้งเมื่อคุณยกเลิกapt-getหรือdpkgเกินไป


4

ฉันมีปัญหานี้หลายครั้ง สำหรับฉันมันมักจะเกิดจาก apt-get หรือ GUI บางอย่างที่เรียกว่ามันหยุดด้วยเหตุผลบางอย่าง ฉันต้องฆ่ามันซึ่งทิ้งล็อคต่าง ๆ ไว้

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

ในขณะที่ส่วนใหญ่หรือทั้งหมดนี้จะปรากฏในคำตอบอื่น ๆ นี้กลั่นแก้ไขลงไปไม่กี่คำสั่ง

sudo fuser -vki /var/lib/dpkg/lock
sudo fuser -vki /var/cache/apt/archives/lock
sudo fuser -vki /var/cache/debconf/config.dat
sudo dpkg --configure -a

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


3

ฉันไม่เห็นคำตอบนี้ที่ใดก็ได้ข้างต้น แต่ใน Ubuntu 16.04 ฉันพบปัญหานี้เช่นกัน สาเหตุที่ถูกเวลาในคอมพิวเตอร์ของฉันถูกตั้งลงในอนาคต (นี่เป็นเพราะฉันใช้ระบบบูทคู่ของ Windows + Ubuntu และฉันเดาว่าฉันได้ทำเวลาท้องถิ่นกับเวลา UTC)

สิ่งหนึ่งที่แปลกก็คือวันที่และเวลาของไฟล์ที่ถูกล็อคคือวันที่และเวลาที่แน่นอนที่ฉันรันโปรแกรม

จากนั้นผมก็ใช้ "ฟิวส์" ตามที่อธิบายไว้ในบทความก่อนหน้านี้และมีแนวโน้มที่ทำงาน dpkg -a -reconfigureแต่ผมได้รับการร้องเรียนเกี่ยวกับการที่ต้องไปทำงาน เมื่อฉันทำอย่างนั้นฉันได้รับข้อผิดพลาดเช่น:

newline in field name #padding

ในไฟล์เช่น '/ var / lib / dpkg / updates / 0003'

ทั้งหมดนี้แปลกมากที่ฉันไม่เคยเห็นมาก่อน ดังนั้นฉันคิดว่าสิ่งเหล่านี้เป็นอาการและเปลี่ยนแปลงข้อมูลและเวลาด้วยตนเอง ฉันรู้ว่ามีปัญหากับวันที่ / เวลาเมื่อฉันเข้าสู่ระบบ แต่ไม่สนใจมัน (ก่อนหน้านี้เป็นการตั้งค่าอัตโนมัติผ่านอินเทอร์เน็ตและ NTP)

จากนั้นปัญหาทั้งหมดข้างต้นได้รับการแก้ไข ... หวังว่านี่จะช่วยคนอื่นได้! อาการที่น่าสังเกตมากที่สุดคือบางทีวันที่ / เวลาของไฟล์ล็อคเป็นวันที่ / เวลาที่แน่นอนที่คุณพยายามเรียกใช้คำสั่ง


3

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


3

ตรวจสอบ Launcher เพื่อดูว่าSoftware Updaterทำงานอยู่หรือไม่ ถ้าเป็นเช่นนั้นให้มากที่สุดและดูว่ามันกำลังทำอะไรอยู่ หากยังคงตรวจสอบอยู่ให้รอจนกว่าจะเสร็จ เมื่อเสร็จสมบูรณ์อาจบอกได้ว่าซอฟต์แวร์เป็นเวอร์ชั่นล่าสุดดังนั้นให้ปิดแอพ หากมีข้อความระบุว่ามีการอัปเดตให้ทำการอัปเดตหรือคลิก "เตือนฉันภายหลัง" หลังจากนี้ app นี้ปิดคุณสามารถกลับไปใช้หรือapt-getapt

หากSoftware Updaterไม่ได้ใช้งานอยู่ให้ใช้ Dash เพื่อเรียกใช้และรอให้เสร็จสิ้นจากนั้นตัดสินใจว่าคุณต้องการอัปเดตหรือคลิก "เตือนฉันภายหลัง" หลังจากนี้ app นี้ปิดคุณสามารถกลับไปใช้หรือapt-getapt


2

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


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

บางครั้งมันทำให้เกิดข้อความแสดงข้อผิดพลาดเดียวกัน
karel


1

ในกรณีของฉันหลังจาก:

  1. เปิด Firefox
  2. เปิดเทอร์มินัล

ฉันพิมพ์


sudo apt update
sudp apt upgrade
จากนั้นฉันก็พบปัญหานั้น

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
ฉันแก้ไขการรันคำสั่งที่แสดงให้ฉันทราบหลังจากรัน sudo apt update

apt list --upgradable

คำสั่งนี้จะแสดงรายการโปรแกรมในกรณีของฉันเท่านั้น Firefox ฉันปิด Firefox จากนั้นสามารถรันคำสั่งอีกครั้งโดยไม่มีปัญหา

sudo apt upgrade

0

สำหรับผู้ที่สนใจป้องกันเชิงป้องกันข้อผิดพลาดนี้ในสคริปต์ของพวกเขาฉันพบว่าการเปิดใช้งานแฟล็ก -q apt upgrade -yqทำให้เกิดปัญหานี้สำหรับฉัน ในระหว่างกระบวนการอัพเกรดฉันคิดว่ามันจะเตือนฉันเป็นครั้งคราว (บางสิ่งบางอย่างตามแนวการอัพเดตเดสก์ท็อปฉันต้องการดำเนินการต่อ) และหากคำเตือนเหล่านี้ถูกระงับ และมันก็ติดอยู่

เป็นที่ยอมรับว่าฉันมีปัญหาในการทำซ้ำข้อผิดพลาดนี้ 100% ของเวลาแต่การกำจัดตัวเลือก -q นั้นแก้ไขปัญหาให้ฉันได้อย่างสมบูรณ์


0

เช่นเดียวกับคนอื่น ๆ ส่วนใหญ่ที่ฉันรอเพื่อปลดล็อค หลังจาก 30 นาทีฉันก็ยอมแพ้และ booted อย่างหนักเพื่อการกระจายที่แตกต่างกัน จากนั้นฉันใช้อินเทอร์เน็ตเพื่อการวิจัยซึ่งทำให้ฉันอยู่ที่นี่

ปรากฎว่าunattended-upgrades.serviceกำลังทำงานอยู่ ฉันพบว่ากำลังรีบูตระบบที่ชำรุดและทำงานอยู่:

sudo systemctl disable apt-daily.service
sudo systemctl disable unattended-upgrades.service
sudo systemctl disable apt-daily-upgrade.service
sudo systemctl disable apt-daily-upgrade.timer
sudo systemctl disable apt-daily.timer
sudo shutdown -r # Note it will take a couple minutes to reboot

อนุญาตให้ฉันใช้งานระบบที่ชำรุดอีกครั้งสำหรับ:

sudo apt update
sudo apt upgrade
sudo apt install -f

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.