在配置 ubuntu 18.04(本地镜像)期间,我们运行 apt-get autoclean,然后运行更新,最后运行 dist-upgrade(也尝试升级),并且在 dist-upgrade(或升级)期间程序生成退出 100。我尝试了各种环境设置和命令行选项,但无法解决这个问题。
我在日志中没有看到任何可以表明 dist-upgrade 失败的原因的信息,实际上并没有失败,它正在运行,但程序在运行时立即生成退出 100... 最终结果是后续进程停滞,因为文件被 apt 锁定。如果我在虚拟机上手动运行该命令,它会正常工作(这让我认为这是一个环境问题)。
有什么想法吗?
答案1
感谢您的提示(重定向/日志记录)。我一直在挖掘日志,并没有想到只是强制将输出到文件...结果是这样的:
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?
我必须在模板中禁用自动更新配置,并在配置我们的 puppet 配置后启用。我还发现有一个新的命令可以“等待”锁定超时(虽然我还没有测试过),它也应该有效。设置为 -1 它会永远等待。这个应该等待 120 秒。
apt-get -o DPkg::Lock::Timeout=120 dist-upgrade