无法在 CIS Ubuntu 22.04 LTS 实例上强制非交互式 apt-get dist-upgrade

无法在 CIS Ubuntu 22.04 LTS 实例上强制非交互式 apt-get dist-upgrade

我有一个来自 AWS 的 CIS Ubuntu 22.04 LTS 基础映像,我正尝试使用 Packer 从中刻录一个基础映像。

由于这是一个完全非交互式的管道,我不能有任何 tty 问题,并且构建失败。我已经研究了这个问题很长时间了,但我没有主意:

DEBIAN_FRONTEND=noninteractive sudo apt-get \
  -o Dpkg::Options::=--force-confold \
  -o Dpkg::Options::=--force-confdef \
  -y --allow-downgrades --allow-remove-essential \
  --allow-change-held-packages dist-upgrade

应该可以工作,但仍然让我回到相同的菜单在这个问题中

我目前唯一的怀疑是

  • /tmp 是 noexec,这可能会影响 libc6 更新 - 但这不应该导致出现问题
  • 可能已经对源市场图像应用了一些其他与 CIS 相关的准备工作,但我对此并不知情。

我该怎么做才能强制这台机器以非交互方式使用遇到的文件的旧/默认配置进行 dist-upgrade?

我尝试时注意到了这一点:

Can't exec "/tmp/libc6.config.uLjYjf": Permission denied at /usr/lib/aarch64-linux-gnu/perl-base/IPC/Open3.pm line 178.

我对此无能为力。

我还发现这个答案但是当我跑的时候

debconf-set-selections <<< "grub-efi grub-efi/install_devices multiselect /dev/sda1"
debconf-set-selections <<< "kdump-tools kdump-tools/install_kdump boolean true"
DEBIAN_FRONTEND=noninteractive sudo apt-get -o Dpkg::Options::=--force-confold -o Dpkg::Options::=--force-confdef -y dist-upgrade

我仍然能看到菜单。

答案1

默认情况下,sudo会清理其运行的命令的环境。因此,不要DEBIAN_FRONTEND=noninteractive sudo apt-get ...使用 ,而是尝试sudo DEBIAN_FRONTEND=noninteractive apt-get ...

相关内容