📌  相关文章
📜  为什么升级 ubuntu 然后经常显示此消息“它正在等待缓存锁定:无法获取锁 var lib dpkg lock.frontend.-Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:48:56.219000             🧑  作者: Mango

为什么升级 Ubuntu 经常显示此消息?

在 Ubuntu 中,当有一个程序正在运行时,其他程序可能会被阻塞。这也适用于包管理器 dpkg。当你在升级 Ubuntu 或安装/卸载软件时,在 dpkg 后台运行的其他进程会锁住系统,让你无法进行必要的操作,直到它们完成。

因此,当你在升级 Ubuntu 或安装/卸载软件时,如果 dpkg 还没有完成前面的操作,则会出现“正在等待缓存锁定:无法获取锁 var lib dpkg lock.frontend.-Shell-Bash”的错误消息。这只是告诉你 dpkg 正在忙于做其他事情,并且你必须等到它完成操作之后才能继续进行。

如果等待时间过长,你可以先尝试关闭所有其他 dpkg 后台进程,或者通过终端命令手动杀死它们。

以下是如何手动杀死 dpkg 后台进程的指南:

  1. 打开终端并输入命令:

    sudo killall dpkg

    这将结束所有正在运行的 dpkg 后台进程。

  2. 如果第一步没有生效,请输入以下命令以杀死 dpkg 后台进程:

    sudo kill -9 $(sudo lsof /var/lib/dpkg/lock-frontend./ * 2>&1 | grep process | awk '{print $2}')

    这将找到当前占用 dpkg 锁的进程并结束它。

请注意,手动杀死 dpkg 后台进程可能会导致不完整的软件包安装或安装失败。因此,在使用上述命令之前,务必了解其风险以及正确的用法。

如果你仍然无法解决该问题,请考虑重启系统,以确保 dpkg 后台进程已被完全终止。

参考链接