尝试 sudo apt upgrade 时无法获取锁定错误

尝试 sudo apt upgrade 时无法获取锁定错误

我正在打字sudo apt upgrade

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?

问题是什么?

答案1

您的设备很可能已在运行更新。应该有一个窗口最小化或位于另一个窗口后面,这是等待输入的标准更新程序。

答案2

  1. 您是否正在运行其他软件包管理器?这包括 Ubuntu Software、Synaptic、运行 apt/aptitude/dpkg 的终端窗口等。它不包括 Snapd、Pip、Flatpack 或 Appimage 管理器,因为它们都不使用 deb。您一次只能运行一个 deb 软件包管理器。关闭您不使用的那些。

  2. 无人值守升级可能正在运行。检查方法如下:

$ ls -la /var/lib/apt/periodic/

total 8
drwxr-xr-x 2 root root 4096 Sep 15  2017 .
drwxr-xr-x 5 root root 4096 Apr  2 19:08 ..
-rw-r--r-- 1 root root    0 Apr  2 19:06 download-upgradeable-stamp
-rw-r--r-- 1 root root    0 Apr  2 19:08 unattended-upgrades-stamp
-rw-r--r-- 1 root root    0 Apr  2 19:05 update-stamp
-rw-r--r-- 1 root root    0 Apr  2 19:05 update-success-stamp
-rw-r--r-- 1 root root    0 Apr  2 19:08 upgrade-stamp

在这里您可以看到无人值守升级使用的整个过程:更新、更新成功、下载可升级、升级、无人值守升级。

查找该时间戳序列,所有时间戳都相隔几分钟。如果一些时间戳来自几分钟前,而其他时间戳来自昨天,那么您就知道 UU 可能仍在运行。尽可能避免中断它 - 不正常关机后的清理工作可能很繁琐。

  1. 关闭所有打开的包管理器后,并确认无人值守升级似乎没有运行,是时候检查正在运行的进程了:
$ ps -e | grep apt
   (no output)

$ ps -e | grep dpkg
   (no output)

$ ps -e | grep aptdaemon
   (no output)

如果有输出,则说明您已找到正在运行的包管理应用程序。如果可能,请让它完成。如果遇到卡住的进程(非常罕见),请终止该进程并手动释放锁定文件。请勿关闭计算机或按住电源按钮 - 这样做可能会损坏您的系统。

答案3

这个错误表明您正在从另一个终端使用 apt 或被其他进程使用。

有两种方法可以解决这个问题。

  1. 重新启动您的电脑并尝试以下命令。

    sudo apt update
    
  2. 终止进程并尝试更新

    sudo ps -aux | grep apt
    kill -9 <Enter_the_proccess_id>
    kill -9 <Enter_the_proccess_id>
    sudo apt update
    

相关内容