ubuntu系统apt安装软件提示dpkg被占用的问题
安装软件时,系统提示有进程在占用安装进程。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 anothe
安装软件时,系统提示有进程在占用安装进程。
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?
意思:E:无法获取lock/var/lib/dpkg/lock frontend-打开(11:资源暂时不可用)
E:无法获取dpkg前端锁(/var/lib/dpkg/lock frontend),是否有其他进程正在使用它?
然后需要查看进程dpkg是否被别的程序占用
root@yaoyafei:~# ps -ef | grep apt
root 2265 1 0 07:41 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily install
root 2279 2265 0 07:41 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
root 11217 11199 0 07:43 pts/0 00:00:00 /usr/bin/dpkg --status-fd 12 --no-triggers --unpack --auto-deconfigure /var/cache/apt/archives/libcurl3-gnutls_7.58.0-2ubuntu3.14_amd64.deb
root 11224 10931 0 07:43 pts/1 00:00:00 grep --color=auto apt
查资料说这是一个后台程序,在后台运行,并在启动系统时自动检查系统更新。
在Ubuntu18.04及更高版本中,它甚至可以自己下载并安装重要的安全更新。
查看到是一个系统开机内核更新的进程,建议等待几分钟,当然你也可以直接杀掉
如果其他程序正在使用apt,使用Linux命令行查找并终止正在运行的进程。
其他的问题可以参考 https://itsfoss.com/could-not-get-lock-error/
在大多数情况下,上述方法可以解决问题。但我的情况有点不同。我正在更新我的系统,不小心关闭了终端。由于这个原因,没有运行apt的进程,但它仍然向我显示了错误。
在这种情况下,根本原因是锁文件。如前所述,锁文件用于防止两个或多个进程使用相同的数据。运行apt或apt get命令时,它们会在一些地方创建锁文件。如果之前的apt命令没有正确终止,则不会删除锁定文件,因此它们会阻止apt get或apt命令的任何新实例。
要解决此问题,只需删除锁定文件。但在此之前,最好停止使用锁文件的任何进程。
使用lsof命令获取保存锁文件的进程的进程ID。检查错误并查看它所抱怨的锁文件,并获取保存这些锁文件的进程的id。
sudo lsof /var/lib/dpkg/lock
sudo lsof /var/lib/apt/lists/lock
sudo lsof /var/cache/apt/archives/lock
这些命令可能不返回任何内容,或者只返回一个数字。如果它们确实返回至少一个数字,请使用这些数字并像这样终止进程(将<process\u id>替换为从上述命令中获得的数字):
sudo kill -9 <process_id>
现在,您可以使用以下命令安全地删除锁定文件
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
之后,重新配置包:
sudo dpkg --configure -a
现在,如果运行sudo apt update命令,一切都会好起来
其他情况2 无法获取dpkg前端锁,错误如下
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?
如前上面的问题所述,您应该使用lsof命令找出哪个进程保持锁定前端:
sudo lsof /var/lib/dpkg/lock-frontend
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
unattende 2823 root 5uW REG 8,2 0 145221 /var/lib/dpkg/lock-frontend
unattende 示正在运行无人值守的安全升级,等待流程完成。
如果是其他进程则终止该进程,然后删除锁文件。
kill -9 PID
sudo rm /var/lib/dpkg/lock-frontend
sudo apt update
错误信息:dpkg: error: dpkg frontend is locked by another process
dpkg:错误:dpkg前端被另一进程锁定
首先,找出保存锁文件的进程的id
sudo lsof /var/lib/dpkg/lock-frontend
上面的命令将为您提供使用锁定文件的进程的详细信息。使用进程ID终止此程序:
sudo kill -9 PID
卸下锁并重新配置dpkg
sudo rm /var/lib/dpkg/lock-frontend
sudo dpkg --configure -a
以上文章参考:https://itsfoss.com/could-not-get-lock-error/
更多推荐
所有评论(0)