我有一个来自 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 ...
。