安装软件包时“ 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

但是我不知道该如何解决。

Answers:


110

这是一个更简单的命令

我已经做了:

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

在运行apt-get installand之后(我正在安装curl),它恢复了数据库手册页。

PS:我用apt-get删除了一些东西,但是确实有这个问题。但解决了它也只感谢@rajagenupula


我用过sudo \rm -v /var/cache/debconf/*.dat
Mark Stewart

17
不要这样做...您可能会破坏系统。正确的答案是使用热熔器并取消该过程,如下面赛义德的回答。
Ryan P

8
嗯,不要删除它。只需杀死打开文件的进程即可。
jorfus

4
这可能是非常危险的事情。请参阅下面的答案
BlackDivine'1

1
就我而言,没有进程在运行,因此这是唯一有效的解决方案。
MacroMan '18

106

Wiki中详细介绍了此锁定问题的解决方案:

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
这很棒!谢谢,我不知道'定影器'!
stolsvik 2014年

1
热熔器还有一个选项开关-k,它可以杀死使用该文件的已找到进程:sudo fuser -v -k /var/cache/debconf/config.dat将立即
终止

1
应该选择它作为最佳答案。
阿达(Arda)

当Debian从Stretch升级到Buster的升级意外地成为背景时,为我工作。
Adambean

15
  1. 打开你的终端
  2. 打开位置/var/cache/debconfgksu nautilus
  3. 将所有.dat文件移动(剪切/粘贴)到另一个备份目录。
  4. 尝试再次运行(可能会得到其他错误)
  5. 从上述备份目录还原这些dat文件。
  6. 然后再试一次您正在做什么(这次应该可以工作)。

1
我有一个类似的问题,我只是删除了debconf文件夹中的所有文件。
Agmenor

我在第3点说过。具有密码和扩展名的文件。好的现在你得到什么。您可以通过pastebin链接将其发布到此处吗?
rɑːdʒɑ

同样的问题,我需要删除debconf文件夹中的所有文件
等效

我仍然收到错误debconf:apt-extracttemplates失败:没有这样的文件或目录apt-extracttemplates失败

1
我真的很生气,看到你的回答,突然间有了进步。谢谢。
大卫·卡波尼

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

将显示该过程并询问您是否要终止它。


谢谢它的帮助我..:D
布迪穆利

0

仍然有一个进程在阻止debconf。您应该等待直到完成。或者找出它是如何被卡住的,因为在某些情况下,它会尝试向您询问一个问题,但由于您没有看到它的范围。如果您等待一段时间,但事情没有改变,则可能需要重新启动系统或终止该过程。

sudo kill 4672

要么

sudo killall dpkg-prec

这将确保您的数据库不会受到损坏,并且可以防止进一步的问题。


3
我认为在第一个命令示例中使用进程ID 4672毫无意义。有人可能会原样使用该命令,但由于他很可能具有不同的进程ID,因此无法使用。
user205301 2013年

@ user205301,这是第二个;)
Braiam
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.