一点背景知识:我正在尝试在 AWS 中设置一个自动安装过程,该过程几乎不需要干预即可配置我的服务器。我通常在 Ubuntu 18.04 中使用它。然而,在 22.04 (ARM) 中出现错误。
问题:无法锁定管理目录(/var/lib/dpkg/),是否有另一个进程正在使用它?
我已经实施了上述解决方案。问题是,当我运行apt list --installed
。
我仍然得到:unattended-upgrades/jammy,now 2.8ubuntu1 all [installed,automatic]
。
在 18.04 中,该行的末尾显示为[installed]
。我是否可以将 22.04 版本设为手动,以便系统将其视为手动?我真的不希望它在第一次启动时运行。这个自动版本锁定了我继续处理服务器的能力,直到我重新启动它或该过程完成。我的自动化中断了,如果我手动执行它,它就会正常工作。
如果我不能这样做,我还可以使用一两条评论来了解如何知道自动安装在第一次启动时已经完成。
我注意到,enter
即使有标志,在升级过程中我也必须按两次-y
。这是问题的一部分吗?还是另一个问题?
谢谢大家!
更新:我对命令中发生的事情的理解apt list -installed
已根据评论得到纠正。
我现在的问题是:
- 有没有一种方法可以让我不用使用睡眠和任意数字来启动这个过程?
- 我该如何处理 apt-get upgrade 需要我按回车键才能继续我的自定义安装?
答案1
使用 Muru 的链接并阅读:如果 APT 的另一个实例正在运行,如何让包管理器等待?
我仔细阅读了最底部的 Mendhak 的评论,显然,自 20.04 以来,我需要的功能已经存在了apt-get
。
他的评论让我想到:https://blog.sinjakli.co.uk/2021/10/25/waiting-for-apt-locks-without-the-hacky-bash-scripts/。这与我正在处理的应用程序和问题完全相同。
简短版本如下:sudo apt-get -o DPkg::Lock::Timeout=60 install packagename
在其他帖子和外部链接之间,我有很多选择。也请支持那里的发帖者。