Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is...

2023-05-25 09:45:18 浏览数 (1)

当在ubuntu系统上进行apt安装时,报了这种错误:

代码语言:shell复制
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1565 (unattended-upgr)...

原因是

因为其他一些程序正在尝试更新 Ubuntu。 当命令或应用程序更新系统或安装新软件时,它会锁定 dpkg 文件(Debian 包管理器)。完成此锁定是为了让两个进程不会同时更改内容,因为这可能会导致不必要的情况和可能损坏的系统。

处理办法分析:

第一件事是检查是否有其他程序正在运行系统更新或安装程序。如果使用的是命令行,请检查软件中心、软件更新程序、Synaptic 包管理器、Gdebi 等应用程序是否正在运行任何更新/安装。 如果是这种情况,请等待程序完成运行过程。如果没有运行此类应用程序,请检查所有打开的终端窗口,看看是否正在运行更新或安装程序。 如果是,请等待它完成。

如果以上都没有发生,请检查哪个其他进程正在运行 apt 命令(用于处理软件的包管理器)。 使用此命令:

代码语言:txt复制
ps aux | grep -i apt

我的打印如下:

代码语言:txt复制
ubuntu:~$ ps aux | grep -i apt
root        1491  0.0  0.0   2628   716 ?        Ss   09:19   0:00 /bin/sh /usr/lib/apt/apt.systemd.daily install
root        1495  0.0  0.0   2628  1724 ?        S    09:19   0:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
root       74210 34.6  6.1 138288 123968 ?       SN   09:28   0:01 /usr/bin/python3 /usr/lib/update-notifier/apt-check --human-readable
ubuntu     74254  0.0  0.0   6524   916 pts/0    S    09:28   0:00 grep --color=auto -i apt

如果你看到 apt 正在被 apt.systemd.daily update 这样的程序使用,那么问题就确认了。这是一个在后台运行的守护进程,并在启动系统时自动检查系统更新。

在 Ubuntu 18.04 及更高版本中,它甚至可能会尝试自行下载并安装重要的安全更新。 至少这是我在 Ubuntu 桌面上的软件和更新工具的默认设置中看到的。

处理办法1

最简答的,直接关闭自动更新:

代码语言:txt复制
sudo nano /etc/apt/apt.conf.d/20auto-upgrades

把值改为0

代码语言:txt复制
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

处理办法2

把这些更新进程kill掉,或者等他们完成。

0 人点赞