我收到以下错误:
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?
每次我尝试安装新软件时,我都会尝试终止该进程。因此,我输入命令“ps -A | grep apt-get”,但没有得到任何响应。
我怎样才能摆脱这把锁?
答案1
apt-get
并不是唯一使用的前端应用程序/var/lib/dpkg/lock
。
更新管理器、软件中心、Synaptic 等aptitude
都有自己与 Apt 和 dpkg 数据库交互的方式。
找出答案什么已经打开,您可以使用fuser
:
sudo fuser -u /var/lib/dpkg/lock
然后,如果可以安全杀死它(我建议人们在使用该-k
标志之前务必检查),你可以杀死它并删除锁文件。
答案2
使用lsof <file>
似乎也有效。
例如,如果我正在synaptic
运行(实时):
$ sudo lsof /var/lib/dpkg/lock
lsof: WARNING: can't stat() tmpfs file system /cow
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/999/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
synaptic 20942 root 10uW REG 0,18 0 39610 /var/lib/dpkg/lock
然后我知道synaptic
PID 为 20942 的程序打开了锁文件,从而阻止了其他包管理程序。