如何修复 Ubuntu 上的“E:无法获取锁 /var/lib/dpkg/lock”错误

本简要指南可帮助您解决如何在 Ubuntu 上修复“E:无法获取锁定 /var/lib/dpkg/lock”错误。 这通常会在后台已经运行另一个 apt 操作时发生。

我有一个用于测试目的的 Ubuntu 18.04 LTS 虚拟机。 每当我启动此 VM 并尝试使用 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?

或者,类似如下的错误:

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?
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 数据库。 我跑了 “最佳” 命令来调查正在运行的进程列表。 查看 top 命令的输出后,我知道了 有一个过程叫 无人值守更新, 运行 适当的更新 每次我打开我的 Ubuntu 虚拟机。 在 apt update 运行时,apt 数据库被锁定,我无法执行任何 apt 操作。

修复 Ubuntu 上的“E:无法获取锁 /var/lib/dpkg/lock”错误

如果您遇到此问题,请等待几分钟,直到当前安装或更新或卸载任务完成。 此过程将需要一些时间(5 到 10 分钟或更长时间)才能完成,具体取决于更新的大小。 一旦该任务完成,锁将自动释放。

但是如果进程由于某种原因被卡住并且它锁定了 apt 数据库几分钟,你别无选择,只能解除锁定。 在这种情况下,请按照以下步骤进行修复。

首先让我们找出哪个过程 拥有锁文件即 /var/lib/dpkg/lock.

$ sudo lsof /var/lib/dpkg/lock

如果锁定文件不同,例如 /var/lib/dpkg/lock-frontend,您可以使用以下命令找到拥有此锁定文件的进程的 PID:

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

如果锁定文件是“/var/lib/apt/lists/lock”, 跑:

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

样本输出:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME unattende 1548 root 6uW REG 8,2 0 1181062 /var/lib/dpkg/lock

E: 无法获得锁 /var/lib/dpkg/lock-frontend – open (11: 资源暂时不可用)

正如你在上面的输出中看到的,持有锁文件的进程的PID是 1548.

只需使用命令杀死它以释放锁:

$ sudo kill -9 1548

您现在可以使用以下命令安全地移除锁:

$ sudo rm /var/lib/dpkg/lock

或者,

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

或者,

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

此外,您可能需要删除缓存目录中的锁定文件:

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

解除锁定后,运行:

$ sudo dpkg --configure -a

这应该可以解决问题。

这种方法在 99% 的时间内都可以正常工作。 但请注意,如果更新过程正在运行并且您在软件包安装过程中终止了该过程,您最终可能会导致系统损坏。 在这种情况下,不要惊慌,只需按照以下指南进行修复即可。

  • 如何在不重新安装的情况下修复损坏的 Ubuntu 操作系统

祝你好运!

相关阅读:

  • 如何在 Ubuntu 上禁用无人值守升级

感谢您的光临!

帮助我们帮助您:

  • 订阅我们的电子邮件通讯: 立即注册
  • 支持 OSTechNix: 通过贝宝捐款
  • 下载免费的电子书和视频: TradePub 上的 OSTechNix
  • 联系我们: 红迪网 | Facebook | 推特 | 领英 | RSS订阅

祝你有美好的一天!!

APTdpkgLinux包管理疑难解答Ubuntu