最近,我遇到了“Could not get lock /var/lib/dpkg/lock”的谬误,我既不能装置任何软件包,也不能更新零碎。此谬误也与“Could not get 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 个或多个终端运行零碎更新或降级时,就会产生这种状况。当您过早地勾销或以其余形式更新 / 降级时,也可能产生这种状况。
如果遇到这种谬误,齐全没有必要惊恐,让咱们探讨一些解决方案。
(1) 敞开所有正在应用 APT 管理器的过程
列出应用 apt 包管理器的过程
$ ps aux | grep - i apt
完结正在应用 apt 包管理器的过程
$ sudo kill -9 3619
$ sudo kill -9 3620
再次应用 ps 命令,验证过程是否完结,如果它们都已革除,就能够持续更新零碎。
(2) 删除锁定文件
在某些状况下,根本原因可能是锁文件。锁文件阻止两个或多个过程拜访雷同的数据。当您运行 apt 或 apt-get 命令时,通常会创立一个锁文件。然而,如果最新的 apt 命令没有胜利执行 (即忽然终止),锁文件将持续存在并阻止任何后续的 apt 或 apt-get 实例。
解决“Could not get lock /var/lib/apt/lists/lock”谬误
$ sudo rm /var/lib/apt/lists/lock
解决“Could not get lock /var/lib/dpkg/lock”谬误
$ sudo rm /var/lib/dpkg/lock
其余时候,您可能会遇到“/var/lib/dpkg/lock-frontend error”的谬误。这意味着以后正在运行应用 APT / DPKG 的图形应用程序,这可能是应用 Gdebi 或 Synaptic 包管理器造成的。
即时的补救措施是退出或关闭程序,并再次尝试。如果没有成果,可是尝试删除 /var/lib/dpkg/lock-frontend 文件。
$ sudo rm /var/lib/dpkg/lock-frontend
删除 lock-frontend 文件可能会再次导致“Could not get lock /var/lib/dpkg/lock”谬误,因而,您将不得不持续删除相干锁定文件。
$ sudo rm /var/lib/dpkg/lock
如果您碰巧会呈现无关 apt-cache lock 的谬误,例如 /var/cache/apt/archives/lock,请删除相干锁定文件。
$ sudo rm /var/cache/apt/archives/lock
$ sudo rm /var/lib/dpkg/lock
我的开源我的项目
- course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
- course-tencent-cloud(酷瓜云课堂 – github 仓库)