📌  相关文章
📜  E: 无法获取锁 var cache apt archives lock - open (11: 资源暂时不可用) E: 无法锁定下载目录 (1)

📅  最后修改于: 2023-12-03 15:00:33.942000             🧑  作者: Mango

问题描述

在使用apt-get命令获取/更新软件包时,可能会遇到以下类似的错误信息:

E: 无法获取锁 /var/cache/apt/archives/lock - open (11: 资源暂时不可用)
E: 无法锁定下载目录

这个问题的原因是:在更新软件包的过程中,一个进程正在使用apt相关的文件或目录,导致后续的apt操作无法执行。

解决方案

方法一:等待

这个问题通常是暂时的,你可以等待几分钟再试一次。如果你的网络连接比较慢,下载更新包可能需要一些时间。如果你同时在做其他事情,例如编译程序或者使用sudo命令等,则可能会延长等待时间。在等待期间,请不要终止其他进程。

方法二:杀死已有的进程

如果等待无效,你可以尝试杀死正在使用apt相关文件或目录的进程。可以通过运行以下命令来查找正在使用这些文件或目录的进程:

sudo lsof /var/lib/dpkg/lock /var/lib/apt/lists/*/* /var/cache/apt/archives/lock

该命令会列出所有正在使用这些文件或目录的进程。你可以使用以下命令来杀死这些进程:

sudo kill -9 <PID>

其中,<PID>是进程的ID号。你可以在上面的输出结果中找到进程的ID号。

杀死进程后,尝试再次运行apt-get命令。如果仍然存在问题,请继续阅读以下方法。

方法三:删除锁定文件

如果杀死进程也无效,你可以尝试手动删除锁定文件。在Ubuntu发行版中,这些文件通常位于以下位置:

/var/lib/dpkg/lock
/var/lib/apt/lists/lock
/var/cache/apt/archives/lock

你可以使用以下命令来删除这些文件:

sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock

然后,尝试再次运行apt-get命令。

方法四:等待缓存来自动解锁

如果上面的方法都无效,你可能需要等待一段时间,直到APT缓存自动解锁。APT缓存会在以下情况下自动解锁:

  • 当前正在运行的进程完成任务并释放APT的锁定文件。
  • 过了一段时间后,APT缓存自动释放锁定文件。

你可以等待几分钟再重试apt-get命令。

总结

通过以上四种方法,你可以尝试解决E: 无法获取锁 /var/cache/apt/archives/lock的问题。如果这些方法仍然无效,请考虑重启系统以重置APT。