Web Discourse 升级失败。Web docker 升级成功

Docker 的 Web 版本更新成功了,Discourse 的 Web 版本更新失败了。
我重置了失败的更新,但 Web 应用程序显示更新正在进行中。

尝试手动更新 Discourse
cd /var/discourse
./launcher rebuild app

遇到了以下错误。
ERROR: Docker version 19.03.13 not supported,please upgrade to at least 20.10.0, or recommend 24.0.7

我尝试手动升级 Docker:
wget -qO- https://get.docker.com/ | sh

并遇到了以下错误:
E: Could not get lock /var/lib/dpkg/lock-frontend. It is being held by process 10528 (apt-get)
E: Unable to aquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

我的 Discourse 网站宕机了,显示 Oops-Error 500
有什么想法吗?

关于此 Docker 版本错误有几个主题:

Coin,感谢你提供的关于这些主题的提示!

我获取到的 Docker 版本是 19.03.13。然后我尝试使用以下命令更新操作系统:

sudo apt update && sudo apt upgrade -y 3

更新卡在了……

等待缓存锁定:无法获取锁定 /var/lib/dpkg/lock-frontend。它被进程 10528 (apt-get) 占用…… 454s

秒数还在不断增加。

这是 ChatGPT 提供的修复方法。关键是在第 3 步中强制终止卡住的进程。

错误表明另一个 apt 或包管理进程正在运行,并且占用了锁定文件 /var/lib/dpkg/lock-frontend。这种情况会阻止您的 apt 命令继续执行。以下是解决此问题的方法:

修复问题的步骤

  1. 检查正在运行的 apt 进程
    运行以下命令检查其他 apt 进程:

    ps aux | grep apt
    

    查找 apt-getaptdpkg 等进程。如果有一个进程正在运行(例如 apt-getdpkg),它可能正在后台更新或安装某些内容。

  2. 等待进程完成
    如果确实有另一个进程正在运行,最好等待它完成。有时,无人值守的升级或包安装会在后台运行。

  3. 强制终止卡住的进程
    如果进程运行时间异常长,可以终止它:

    sudo kill -9 <PID>
    

    <PID> 替换为进程 ID(在您的情况下,例如 10528)。

  4. 删除锁定文件
    终止进程后,删除锁定文件以确保没有过时的锁定存在:

    sudo rm /var/lib/dpkg/lock-frontend
    sudo rm /var/lib/dpkg/lock
    
  5. 重新配置包数据库
    运行此命令以修复包管理器可能存在的任何问题:

    sudo dpkg --configure -a
    
  6. 重试更新
    现在,重试您的更新命令:

    sudo apt update && sudo apt upgrade -y
    

注意事项

  • 如果此问题频繁发生,请检查后台是否正在运行无人值守升级或自动更新。这些在手动管理包时可能会导致冲突。
  • 要禁用无人值守升级,您可以运行:
    sudo systemctl disable --now unattended-upgrades
    
1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.