Linux - Ubuntu中使用APT出现错误: Could not get lock /var/lib/dpkg/lock-frontend. (unattended-upgr)

我遇到的错误:

dev@Ubuntu20:~$ sudo apt-get install samba

E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1875 (unattended-upgr)

N: Be aware that removing the lock file is not a solution and may break your system.

E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

出现上述错误的原因有很多,但在我的情况下,是由于系统开始了无人值守的升级。为了进一步检查和验证错误,我尝试检查了所有运行 apt 命令的进程。

dev@Ubuntu20:~$ ps aux | grep apt

root        1785  0.0  0.0   2616   600 ?        Ss   23:00   0:00 /bin/sh /usr/lib/apt/apt.systemd.daily install

root        1791  0.0  0.0   2616  1616 ?        S    23:00   0:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install

dev         5086  0.0  0.0  12112   724 pts/0    S+   23:46   0:00 grep --color=auto apt

从上面的输出中可以看出,计划中的无人值守升级已经开始运行。您还可以使用下图所示的命令检查文件下的配置设置,以验证这一点:

dev@Ubuntu20:~$ cat /etc/apt/apt.conf.d/20auto-upgrades

APT::Periodic::Update-Package-Lists "1";

APT::Periodic::Unattended-Upgrade "1";

从上面的输出中可以看到,无人值守升级和更新软件包列表都被设置为1,这意味着它会在你启动系统后从后台检查可用的更新,然后自动开始更新系统软件包。如果这时关机,会提示:

如果你的情况确实如此,那么要解决这个问题,你可以根据自己的条件和要求,采用以下任何一种解决方案。

Solution 1: Wait for Upgrade to Finish

第一种方案:等待更新结束

第一种解决方案是什么都不做,耐心等待无人值守升级完成。根据你的系统配置和网络带宽,完成升级不需要太多时间。这个办法对我很有效。大约几分钟后,当我使用相同的命令再次检查进程时,发现无人值守升级已不再运行。

然后再执行APT命令,问题就不出现了

Solution 2: Kill the Process

第二种方案:杀掉此进程

我不建议在紧急情况下使用的另一种解决方案是使用命令强制杀死无人值守升级,其中 PID 是无人值守升级进程的进程 ID。例如,我当前的环境,命令如下所示:

dev@Ubuntu20:~$ kill -9 1785

Solution 3: Delete Lock File

第三种方案:删掉锁文件。

此解决方案基本上适用于运行 apt 命令后关闭终端的情况。在这种情况下,你可能没有运行任何 apt 进程,但仍然无法运行命令。这只是因为创建了一个锁定文件,在前一个打开的进程结束之前,该文件会阻止任何新的 apt 进程启动。因此,要解决这个问题,你需要使用以下命令识别所有创建的锁定文件,然后手动删除所有这些文件。

$ sudo lsof /var/lib/dpkg/lock

$ sudo lsof /var/lib/apt/lists/lock

$ sudo lsof /var/cache/apt/archives/lock

如果发现有进程正在运行,可以使用 kill -9 <PID> 命令删除这些进程,其中 PID 是所有 apt 进程的进程 ID。最后,你可以使用 rm 命令删除下面的锁定文件,如下图所示。

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

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

$ sudo rm /var/lib/dpkg/lock

现在,你需要使用 sudo dpkg --configure -a 命令重新配置 dpkg,如下所示。

$ sudo dpkg --configure -a

Solution 4: Permanently Remove Unattended Upgrade

解决方案 4:永久删除无人值守升级

如果你正在寻找永久性的解决方案,那么你能做的就是使用 sudo apt remove unattended-upgrades 命令从系统中移除 unattended-upgrades,如下所示。

$ sudo apt remove unattended-upgrades

然后运行 sudo apt update && sudo apt upgrade 命令,更新系统的最新更改。

$ sudo apt update && sudo apt upgrade

参考:

1,APT error

Solved "Could not get lock /var/lib/dpkg/lock-frontend (unattended-upgr)" | CyberITHub

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
"Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend."这个错误消息通常是由于系统正在使用dpkg工具执行软件包管理操作而导致的。这个错误通常有以下几种原因和解决方法: 1. 原因:可能是其他进程正在运行并锁定了dpkg工具。 解决方法:可以等待其他进程完成操作后再尝试执行命令,或者终止其他进程后再执行。 2. 原因:可能是系统更新或软件安装过程出现错误,导致锁文件没有正确释放。 解决方法:可以尝试手动删除锁文件,通过运行以下命令:sudo rm /var/lib/dpkg/lock-frontend 3. 原因:可能是由于系统资源不足而导致的锁定问题。 解决方法:可以尝试重启系统,以释放被占用的资源,并再次尝试执行命令。 总之,"Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend."错误通常是由于系统其他进程正在使用dpkg工具而导致的。你可以通过等待其他进程完成、手动删除锁文件或重启系统来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend.](https://blog.csdn.net/calm_encode/article/details/116911821)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [解决问题Waiting for cache lock:Could not get lock /var/lib/dpkg/lock-frontend](https://blog.csdn.net/Druid_C/article/details/124819116)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值