当像这样进行 Docker 构建时:
FROM debian:buster
RUN apt-get update && apt-get -y --no-install-recommends install \
build-essential \
&& rm -rf /var/lib/apt/lists/*
我收到以下警告:
debconf: delaying package configuration, since apt-utils is not installed
它看起来是无害的,但有没有简单的方法可以避免它?
这并不能消除警告:
FROM debian:buster
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends \
install build-essential
以下是关于该警告的一般问题:“debconf:延迟包配置,因为未安装 apt-utils”是什么意思?
答案1
处理这种情况的一种方法是告诉debconf
对方不要问问题。例如,您可以通过以下方式做到这一点:
RUN DEBIAN_FRONTEND=noninteractive apt-get install ...
RUN export DEBIAN_FRONTEND=noninteractive && ...
ARG DEBIAN_FRONTEND=noninteractive
请注意:不用来ENV
设置这个变量,因为它会保留在最终图像中,这可能不是您想要的。
答案2
tl;dr:对于 Docker,你可以使用类似以下命令:
RUN DEBIAN_FRONTEND=noninteractive DEBCONF_NOWARNINGS=yes apt-get -y ...
设置DEBIAN_FRONTEND=noninteractive
不会停止 debconf 关于“apt-utils 未安装”的警告,它只是阻止它询问问题。
设置DEBCONF_NOWARNINGS=yes
导致 debconf
DEBCONF_NOWARNINGS:设置为“yes”以禁用 debconf 可能显示的一些警告。不抑制致命错误的显示。
答案3
忽略此警告是安全的。出现此警告是因为您正在安装的软件包可以在安装过程中以交互方式配置。此警告意味着已跳过交互式配置。将改用默认配置,而使用默认配置通常不会有问题。
为了避免出现此警告,您必须安装apt-utils
并使用环境变量禁用交互式配置DEBIAN_FRONTEND
。安装时您仍会收到警告apt-utils
,但此后,新安装将不再有这些警告。
可以通过将以下行添加到 Dockerfile 来完成此操作:
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y apt-utils