Ubuntu如何修复Could not get lock /var/lib/dpkg/lock错误?

2021年11月21日04:31:09 发表评论 1,010 次浏览

介绍

在 Ubuntu 中,你有时可能会在尝试运行apt命令时遇到错误:

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?

此消息让你知道 dpkg(Debian 软件包管理器服务)不可用。

如何修复Could not get lock错误使用本指南中的方法解决 Ubuntu“Could not get lock…”错误。

先决条件

  • 访问终端窗口/命令行
  • 具有sudoroot权限的用户帐户

修复“Could not get lock”Ubuntu 错误的 5 个方法

Could not get lock解决办法:默认情况下,更新服务在 Ubuntu 启动时启动。自动更新程序使用dpkg来检查和安装更新。

dpkg的服务锁定本身,这样两个进程不会同时更新的内容。该服务被锁定以避免系统中的潜在损坏。但是,这也意味着用户不能运行简单的apt命令。

1:等待或重启

看到错误后,请等待系统最多 10 分钟,然后再次尝试安装软件。

如果你确定没有安装任何东西,你可以重新启动机器并重试。

调整自动更新的设置:

1.单击Activites >搜索

2. 输入更新

3. 单击软件和更新图标。

4. 使用复选框和下拉菜单选择你喜欢的更新计划。

Ubuntu如何修复Could not get lock /var/lib/dpkg/lock错误?

注意:我们建议保持自动更新开启。或者,你可以将它们设置为不那么频繁或通知你而不是自动下载。

2:检查正在运行的进程

1.如何修复Could not get lock错误?如果你已经尝试等待并重新启动系统,但仍然出现错误,请使用以下命令查看正在运行的安装服务:

ps aux | grep -i apt

2. 如果有任何使用apt 的应用程序,它们将出现在列表中。查找类似于以下内容的条目:

/usr/lib/apt/apt.systemd.daily update
Ubuntu如何修复Could not get lock /var/lib/dpkg/lock错误?

3. 该daily update消息表示你的系统正在运行正常更新。你必须等待此过程完成,但不需要其他任何操作。

你可能有另一个正在运行的apt进程:

root    2810  0.0    0.0    72948 4312  pts/0  S+    15:03  0:00   sudo apt-get remove logstash

最重要的列是第二列,其中列出了PID(进程 ID),以及显示使用 apt 的服务的最后一列。

4. 或者,你可能有一个仍在运行的dpkg服务。要找到它,请使用以下命令:

ps aux | grep -i dpkg

dpkg 输出看起来类似于 apt 输出。

Ubuntu如何修复Could not get lock /var/lib/dpkg/lock错误?

3:解决卡住的 Apt 服务

1. Could not get lock解决办法:如果你有一个神秘的aptdpkg服务在运行,请终止它并查看是否能解决你的错误。使用以下命令:

sudo kill 8808

2. 替换8808 为第 2 步中的实际进程 ID (PID)。它应该完成并返回到新的命令提示符行。如果没有,请通过添加选项强制进程停止-9

sudo kill -9 8808

这应该已经解决了这个问题。

4:删除锁定文件

Ubuntu 中的错误消息可能类似于以下内容:

/var/lib/dpkg/lock

/var/lib/dpkg/lock-frontend

/var/lib/apt/lists/lock

/var/cache/apt/archives/lock

如何修复Could not get lock错误?这些是锁定文件,创建它们是为了防止aptdpkg 的两个实例同时使用相同的文件。如果安装中断或未完成,就会发生这种情况。删除锁定文件的风险由你自己承担。

要删除锁定文件,请使用以下rm命令:

sudo rm /var/lib/dpkg/lock

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

sudo rm /var/cache/apt/archives/lock

删除这些文件应该可以修复错误。

注意:阅读如何在 Linux 中删除文件和目录以了解更多信息。

5:重新配置dpkg

1.--configure如果你刚刚删除了锁定文件,请运行该命令。此外,如果你收到以下错误,此命令将有所帮助:

“dpkg was interrupted, you must manually run ‘sudo dpkg –configure -a’ to correct the problem.”

2. 输入如上所示的命令:

sudo dpkg --configure -a

输出返回一个新行,该命令应该可以解决问题。

修复 Could not get lock /var/lib/dpkg/lock-frontend 错误

修复此错误的步骤遵循我们上述方法中的类似模式。完整的错误是:

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.不要立即删除锁定文件。在此之前,找到并终止可能正在使用这些文件的所有进程。

sudo lsof /var/lib/dpkg/lock-frontend

2. 输出返回类似于以下内容的结果:

lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
lsof: WARNING: can't stat() fuse file system /run/user/1000/doc
      Output information may be incomplete.
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
unattende 1127 root    2oW  REG    7,2        0 165231 /var/lib/dpkg/lock-frontent

3. Could not get lock解决办法:如果你unattended 在命令列下看到,则你的系统正在安装安全更新。等待该过程完成。

4. 否则,记下所有进程 ID 并使用 force 选项杀死它们:

sudo kill -9 process_id

5. 完成此操作后,你可以尝试删除锁定前端文件。

sudo rm /var/lib/dpkg/lock-frontend

这应该修复错误。

6. 删除锁定文件后你可以尝试的最后一件事是重新配置 dpkg,如我们在第五部分中所示。

sudo dpkg --configure -a

如何修复Could not get lock错误?要测试这些步骤是否修复了错误,请运行更新命令:

sudo apt update

当该过程成功完成时,这表明你修复了“E:无法获得锁/var/lib/dpkg/lock”错误。

注意:我们处理的错误有多种不同的形式,但修复的方法是相似的。“Could not get lock...”错误的一些变体是:

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?

结论

本文解释了在 Ubuntu上修复“ E:Could not get lock /var/lib/dpkg/lock ”错误的五个方法。

上述方法之一将解决该问题,并且该错误可能会在重新启动系统后自行解决。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: