“ debconf: DbDriver” config“: config.dat ถูกล็อคโดยกระบวนการอื่น: ทรัพยากรไม่พร้อมใช้งานชั่วคราว” ขณะติดตั้งแพ็คเกจ


93

ฉันพยายามติดตั้งflashybridแต่เมื่อฉันป้อนapt-get install flashybridคำสั่งฉันได้รับข้อผิดพลาดนี้:

root@user-desktop:/home/user# apt-get install flashybrid
Reading package lists... Done
Building dependency tree
Reading state information... Done
flashybrid is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
Setting up flashybrid (0.15+nmu2) ...
debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
dpkg: error processing flashybrid (--configure):
subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
flashybrid
E: Sub-process /usr/bin/dpkg returned an error code (1)

ฉันได้ลองสิ่งนี้เพื่อค้นหาสิ่งที่ใช้ไฟล์นั้นอยู่แล้ว:

root@user-desktop:/home/user# lsof | grep /var/cache/debconf/config.dat
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/user/.gvfs
Output information may be incomplete.
dpkg-prec 4672 root 4rW REG 8,6 39658 1697827 /var/cache/debconf/config.dat

แต่ฉันไม่รู้จะแก้ไขได้อย่างไร

คำตอบ:


110

นี่เป็นคำสั่งเดียวที่ง่ายกว่า

ฉันเพิ่งทำ:

sudo rm /var/cache/debconf/*.dat 

หลังจากที่ฉันเรียกใช้apt-get installและ (ฉันกำลังติดตั้ง curl) และมันทำงานคืนค่าหน้าคู่มือ db

PS: ฉันลบบางสิ่งด้วย apt-get และฉันมีปัญหานี้ แต่แก้ไขมันก็ต้องขอบคุณ @rajagenupula ด้วย


ฉันใช้sudo \rm -v /var/cache/debconf/*.dat
Mark Stewart

17
อย่าทำอย่างนี้ ... คุณสามารถทำลายระบบของคุณได้ คำตอบที่ถูกต้องคือใช้ fuser และฆ่ากระบวนการดังที่คำตอบของ Sayed ด้านล่าง
Ryan P

8
อืมอย่าลบมัน เพียงฆ่ากระบวนการที่เปิดไฟล์
jorfus

4
นี่อาจเป็นสิ่งที่อันตรายมากที่ต้องทำ โปรดดูคำตอบด้านล่าง
BlackDivine

1
ในกรณีของฉันไม่มีกระบวนการทำงานดังนั้นนี่เป็นโซลูชันเดียวที่ทำงานได้
MacroMan

106

วิธีการแก้ปัญหาการล็อคนี้มีรายละเอียดในวิกิ :

sudo fuser -v /var/cache/debconf/config.dat

จะแสดงให้คุณเห็นว่ากระบวนการกำลังถือล็อคอยู่:

                     USER        PID ACCESS COMMAND
/var/cache/debconf/config.dat:
                     root      18210 F.... dpkg-preconfigu

จากนั้นคุณก็ต้องจดบันทึก PID และฆ่ามันโดย:

sudo kill PID
sudo kill -9 PID  # if the first doesn't work

1
มันใช้งานได้ยอดเยี่ยม! ขอบคุณมัดฉันไม่รู้ 'fuser'!
stolsvik

1
ฟิวเซอร์นอกจากนี้ยังมีสวิทช์ตัวเลือก-kที่ฆ่ากระบวนการพบที่ใช้ไฟล์: sudo fuser -v -k /var/cache/debconf/config.datจะฆ่ากระบวนการได้ทันที
minni

1
ควรเลือกให้เป็นคำตอบที่ดีที่สุด
Arda

ใช้งานได้สำหรับฉันเมื่ออัปเดต Debian จาก Stretch เป็น Buster โดยไม่ได้ตั้งใจ
Adambean

15
  1. เปิดเทอร์มินัลของคุณ
  2. เปิดตำแหน่ง/var/cache/debconfด้วยgksu nautilus
  3. ย้าย (ตัด / วาง) ไฟล์. dat ทั้งหมดไปยังไดเร็กทอรีสำรองอื่น
  4. พยายามเรียกใช้อีกครั้ง (น่าจะเกิดข้อผิดพลาดอื่น)
  5. กู้คืนไฟล์ข้อมูลเหล่านั้นจากไดเรกทอรีสำรองดังกล่าว
  6. จากนั้นลองอีกครั้งสิ่งที่คุณกำลังทำ (ควรทำงานในเวลานี้)

1
ฉันมีปัญหาที่คล้ายกันและฉันเพิ่งลบไฟล์ทั้งหมดในโฟลเดอร์ debconf
Agmenor

ฉันพูดที่นั่นที่จุด 3 ไฟล์ที่มีรหัสผ่านและนามสกุล ตกลงตอนนี้สิ่งที่คุณได้รับ คุณช่วยโพสต์ได้ที่นี่โดยลิงค์ pastebin
rɑːdʒɑ

ปัญหาเดียวกันฉันต้องลบไฟล์ทั้งหมดในโฟลเดอร์ debconf
เทียบเท่า

ฉันยังคงได้รับข้อผิดพลาด debconf: apt-extracttemplates ล้มเหลว: ไม่มีไฟล์หรือไดเรกทอรี apt-extracttemplates ล้มเหลว

1
ฉันโกรธมากเห็นคำตอบของคุณและทันใดนั้นก็มีความคืบหน้า ขอขอบคุณ.
David Carboni

7
sudo fuser -vik /var/cache/debconf/config.dat

จะแสดงกระบวนการและถามว่าคุณต้องการยกเลิกหรือไม่


ขอบคุณที่ช่วยฉัน .. : D
Budi Mulyo

0

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

sudo kill 4672

หรือ

sudo killall dpkg-prec

สิ่งนี้จะช่วยให้คุณมั่นใจได้ว่าฐานข้อมูลของคุณจะไม่ได้รับความเสียหายและจะป้องกันปัญหาอื่น ๆ


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

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