如何解决Ubuntu中的’E:无法获得锁定/var/lib/dpkg/lock’错误

[ad_1]

最近,我遇到了错误’无法获得锁 /var/lib/dpkg/lock’。 结果,我既无法安装任何软件包,也无法更新系统。 此错误也与 ‘无法获得锁 /var/lib/apt/lists/lock‘ 错误。 这是 Ubuntu 20.04 上的一些示例输出。

Reading package lists... Done
E: Could not get lock /var/lib/apt/lists/lock. It is held by process 3620 (apt)
N: Be aware that removing the lock file is not a solution and may break your system.
E: Unable to lock directory /var/lib/apt/lists/

这可能非常令人沮丧,并且经常让您束手无策,无法更新、升级或安装任何软件包。

那么,是什么导致了这个错误呢?

正如错误所暗示的那样,这个错误通常发生在另一个进程当前正在使用 /var/lib/dpkg/lock 或者 /var/lib/dpkg/lock 文件。 当您有 2 个或更多终端运行系统更新或升级时,就会发生这种情况。 当您意外或以其他方式过早取消正在进行的更新/升级时,也会发生这种情况。 第二次尝试使用 易于 或者 apt-get 命令 会产生错误。

如果您遇到此错误,绝对无需恐慌。 有几个选项可用于解决此问题。 让我们探索一些解决方案。

解决方案 1) 杀死所有使用 APT 管理器的进程

诊断此问题的第一步是列出使用 apt 包管理器的进程。 为此,请使用 ps 命令,如下所示:

$ ps aux | grep - i apt

这是我得到的输出。

要清除错误,您需要终止与 apt 命令关联的进程。 您可以通过发送 SIGKILL 命令 立即关闭进程。 执行 杀 -9 命令后跟进程 ID,如下所示。

$ sudo kill -9 3619
$ sudo kill -9 3620

完成后,再次验证进程是否已使用 ps命令. 如果它们都已清除,您可以继续更新系统而不会出现问题。

解决方案2)

在某些情况下,根本原因可能是锁定文件。 锁定文件阻止两个或多个进程访问相同的数据。 当您运行任何 apt 或 apt-get 命令时,通常会创建一个锁定文件。 但是,如果最新的 apt 命令没有成功执行(即突然终止),则锁定文件会持续存在并阻止任何后续的 apt 或 apt-get 实例。

这个问题的解决方案是摆脱 apt 锁定文件。 这很容易。 只需运行以下命令:

$ sudo rm /var/lib/apt/lists/lock

如果您收到的错误是“无法获得锁 /var/lib/dpkg/lock”。 报错,删除锁文件如图:

$ sudo rm /var/lib/dpkg/lock

其他时候,你可能会得到一个 /var/lib/dpkg/lock-frontend 错误。 lock-frontend 错误意味着使用 apt / dpkg 的图形应用程序当前正在运行。 这可以是 Gdebi 或突触包管理器或任何其他应用程序。

立即的补救措施是退出或 close 应用程序并再试一次。 如果没有任何提示,只需删除 /var/lib/dpkg/lock-frontend 文件,如图所示。

$ sudo rm /var/lib/dpkg/lock-frontend

删除 锁前端 文件可能会再次导致 ‘无法获得锁 /var/lib/dpkg/lock‘ 错误,因此您将不得不再次删除锁定文件。

$ sudo rm /var/lib/dpkg/lock

如果您碰巧收到有关 apt-cache 锁的错误,例如 /var/cache/apt/archives/lock,继续并删除锁定文件,如图所示。

$ sudo rm /var/cache/apt/archives/lock
$ sudo rm /var/lib/dpkg/lock

这就是你如何解决 ‘无法获得锁 /var/lib/dpkg/lock‘并且无法获得锁定 /var/lib/apt/lists/lock 错误. 我敢肯定,如果您已经走到这一步,您现在应该已经解决了错误。 让我们知道它是怎么回事。

[ad_2]

Related Posts