Ubuntu中,进行安装操作apt时,出现如下报错:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
出现的原因及解决办法:
1、进程中存在与apt相关的正在运行的进程:
解决办法:
- 查看是否存在正在运行的进程:
ps aux | grep -i apt
- 如果存在,kill掉进程:
sudo kill -9 <process id>
- 或者直接简单粗暴:
sudo killall apt apt-get
- 若仍无法解决问题,则属于第二种原因
2、 是lock file的原因:
loack file用于防止两个或多个进程使用相同的数据。 当运行apt或apt-commands时,它会在几个地方创建lock files。 当前一个apt命令未正确终止时,lock file未被删除,因此它们会阻止任何新的apt / apt-get命令实例,比如正在执行apt-get upgrade,在执行过程中直接ctrl+c取消了该操作,很有可能就会造成这种情况。
解决步骤:
- 用lsof命令获取持有lock file的进程,依次执行以下命令:
lsof /var/lib/dpkg/lock
lsof /var/lib/apt/lists/lock
lsof /var/cache/apt/archives/lock
注意1. 若命令执行无返回,则说明没有正在运行的进程继续下一步;如果返回相应的进程,则需kill掉再继续下一步
注意2. 若返回如下提示则说明不存在该文件夹忽略即可
lsof: status error on /var/cache/apt/archives/lock: No such file or directory
lsof 4.89
latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
usage: [-?abhKlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-E] [+|-e s] [+|-f[gG]]
[-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Use the ``-h'' option to get more help information.
- 删除所有lock file即以下文件夹,若某个不存在则忽略
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
- 重新配置以下dpkg
sudo dpkg --configure -a
若不出错误就搞定了!若出现以下错误则执行一下步:
dpkg: error: dpkg frontend is locked by another process
- 找出正在锁定lock file的进程:
lsof /var/lib/dpkg/lock-frontend
- kill掉输出的进程,输出为空则忽略
sudo kill -9 <process id>
- 删除lock file并重新配置dpkg:
sudo rm /var/lib/dpkg/lock-frontend
sudo dpkg --configure -a
搞定!!!
参考:
https://www.cnblogs.com/powerwu/articles/12030030.html