本简要指南可帮助您解决如何在 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
正如你在上面的输出中看到的,持有锁文件的进程的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