网站搜索

修复 Ubuntu 中无法获取锁定 /var/lib/dpkg/lock 错误的 5 种方法


我们解释了一些步骤和方法,您可以通过它们快速修复 Ubuntu Linux 中常见的无法获取锁 /var/lib/dpkg/lock 错误。

背景故事

它发生的次数超乎你的想象。一个美好的早晨,您启动了闪亮的 Ubuntu Linux,并尝试安装一些东西或升级您的系统。你遇到了这个错误 - “无法获取锁 /var/lib/dpkg/lock ....”。

原因?原因很简单,发生在“高级打包工具(apt)”中。当您要求 apt 包工具执行某些操作时,它正忙于执行其他操作。当 apt 执行某些包操作时,它会创建一个锁定文件来防止这种情况。根据操作系统原则,在执行系统升级/更新时应锁定关键资源,以便其他进程无法访问它。这是为了防止任何不需要的系统行为。

此错误有多种变体。但根本原因和我上面描述的一样。

以下是一些错误。

一些示例错误

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?
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 10162 (unattended-upgr)
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/

示例无法获取锁定错误

如何修复:无法获取锁定错误

方法一(推荐)

解决此问题最安全且推荐的方法是等待。由于 apt 在后台运行,因此最好等待几分钟。然后,您可以尝试执行该操作。大多数时候,它通过让系统处理来解决问题。

方法二

第二种方法是手动删除锁定文件。这需要管理员权限。打开终端提示符并运行以下命令以清除锁定。

运行该命令后,尝试执行导致错误的操作。你应该没事。

sudo rm -f /var/lib/dpkg/lock

方法三

第三种方法是手动找到apt的进程ID,持有锁并终止它。

您可以使用以下命令过滤所有具有 apt 的进程。

ps aux | grep apt

apt 的进程 ID 和进程列表

完成此操作后,您可以获得进程 ID(上图中的第二列)并使用以下示例命令终止它。

kill -9 processnumber

方法4

第四种方法是禁用每日自动更新检查计时器systemd服务来尝试您的操作。为此,请打开终端并使用以下命令禁用该服务。

sudo systemctl stop apt-daily.timer

现在,重新启动系统并尝试您的操作。如果一切就绪并且错误消失,您可以使用以下命令再次启用计时器服务。你应该已经准备好了。

sudo systemctl start apt-daily.timer

方法5

最后一种方法专门针对 apt lock 文件附带的其他错误。

如果错误包含类似“E:无法锁定目录 /var/lib/apt/lists/”之类的行,请尝试以下命令。

sudo rm /var/lib/apt/lists/* -vf

最后,如果不起作用,请尝试使用以下命令清除 apt 存档锁。

sudo rm -f /var/cache/apt/archives/lock

所以,仅此而已。

包起来

在本文中,我解释了解决 Ubuntu Linux 和相关发行版中此典型错误的各种方法。我确信其中任何一种方法都应该适合您。

请在评论框中让我知道哪个命令适合您,以造福他人。

相关文章