解决方案

最简单和唯一推荐的解决方案是等待,让后台包管理工具更新完成其工作并释放锁定文件。

如何避免在Ubuntu Linux上避免“could not get lock”错误消息

解决方案是停止自动后台系统包列表更新并手动运行更新。

要关闭自动更新,请编辑 /etc/apt/apt.conf.d/20auto-upgrades

$sudo nano /etc/apt/apt.conf.d/20auto-upgrades

打开文件后,请关闭Update-Package-Lists指令,如下所示:

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "1";

如何查找持有锁的用户和进程

我们想知道当前哪个任务正在占用更新锁,可以按照下面的步骤:

  • 检查正在被锁定的是哪个文件。例如:
E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/
  • 使用“fuser命令”找出对应的进程ID(PID):
$sudo fuser /var/lib/apt/lists/lock
 /var/lib/apt/lists/lock: 3384
  • 根据进程PID查找用户和他执行的命令:
$ps -p 3384 -o user,comm,args
USER     COMMAND         COMMAND
root     apt             apt update

如何解除“/var/lib/apt/list/lock”锁定

如果包管理工具卡住,因此,无法完成和删除锁定文件,我们可能会尝试杀死该过程。
例如,这可以通过以下方式完成:

$sudo fuser -vki /var/lib/apt/lists/lock
[sudo] password for onitroad: 
                     USER        PID ACCESS COMMAND
/var/lib/apt/lists/lock:
                     root       3384 F.... apt
Kill process 3384 ? (y/N)

或者使用kill命令:

$sudo kill -9 3384

如果我们手动杀死进程或者无法找到锁定的过程和用户,则可能是先前执行的软件安装或者软件升级过早退出,那么可以手动删除锁定文件:

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

如何从过早地终止APT或者DPKG安装过程中恢复

当安装过程过早中断时,系统可能会暂时被破坏,防止我们执行任何其他软件安装,导致类似于下面的错误:

E: Sub-process /usr/bin/dpkg returned an error code (2)

尝试以下命令恢复损坏的DPKG系统:

$sudo dpkg --configure -a
$sudo apt install -f

对于中断的系统升级,执行:

$sudo apt upgrade --fix-broken
Ubuntu/Debian Could not get lock /var/lib/apt/lists/lock

“Could not get lock”消息的含义相当简单。
当我们尝试安装新软件或者更新操作系统时,还有另一个软件安装或者软件升级,在后台运行,并在另一个具有管理权限的其他用户的其他用户在另一个远程或者本地终端上启动。

E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)  error message on Ubuntu 18.04
在Ubuntu 18.04上无法获取lock/var/lib/apt/lists/lock–open(11:资源暂时不可用)错误消息

其他相关错误消息:

E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/
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?

另一个原因是使用“APT”或者“DPKG命令”的软件安装或者升级过程中断。

日期:2020-07-07 20:56:04 来源:oir作者:oir