"debconf: DbDriver "config": config.dat 被另一个进程锁定: 资源暂时不可用" 安装包时

Dim*_*is7 158 apt debconf

我正在尝试安装,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)
Run Code Online (Sandbox Code Playgroud)

我也试过这个来查找已经在使用该文件的内容:

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
Run Code Online (Sandbox Code Playgroud)

但我不知道如何解决这个问题。

小智 239

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

sudo fuser -v /var/cache/debconf/config.dat
Run Code Online (Sandbox Code Playgroud)

将向您展示持有锁的进程:

                     USER        PID ACCESS COMMAND
/var/cache/debconf/config.dat:
                     root      18210 F.... dpkg-preconfigu
Run Code Online (Sandbox Code Playgroud)

然后你只需要记下PID并像这样杀死它:

sudo kill PID
sudo kill -9 PID  # if the first doesn't work
Run Code Online (Sandbox Code Playgroud)

  • fuser 还具有选项开关 `-k`,它会终止使用该文件的已找到进程:`sudo fuser -v -k /var/cache/debconf/config.dat` 将立即终止该进程 (9认同)
  • 这太棒了!非常感谢,我不知道“热熔器”! (8认同)
  • 这应该被选为最佳答案。 (5认同)

uce*_*fkh 121

这是一个更简单的命令

我已经做了:

sudo rm /var/cache/debconf/*.dat 
Run Code Online (Sandbox Code Playgroud)

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

PS:我用 apt-get 删除了一些东西,我确实遇到了这个问题。但解决它也简单地感谢@rajagenupula

  • 不要这样做……你会破坏你的系统。正确答案是使用 fuser 并终止进程,如下面 Sayed 的回答所示。 (27认同)
  • 嗯,不要删除它。只需杀死打开文件的进程。 (9认同)
  • 这可能是非常危险的事情。请看下面的回答 (5认同)

rɑː*_*dʒɑ 17

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


小智 12

sudo fuser -vik /var/cache/debconf/config.dat
Run Code Online (Sandbox Code Playgroud)

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