将输入输入到 apt install

将输入输入到 apt install

我正在尝试安装python3.9在基于 ubuntu:20.04 的 Dockerfile 中。当我apt -y install python3.9手动运行时,它会提示我输入与我的时区相对应的地理区域和城市。对我来说,这分别对应于选项 2 和 106(即纽约)。然而,当我跑步时

echo '2\n106' | apt -y install python3.9

apt输出

Use of uninitialized value $_[1] in join or string at /usr/share/perl5/Debconf/DbDriver/Stack.pm line 111, <STDIN> line 1.

Current default time zone: '/UTC'

我该如何apt正确提供输入值?

答案1

在环境中运行该apt install步骤:DEBIAN_FRONTEND=noninteractive

DEBIAN_FRONTEND=noninteractive apt -y install python3.9

这将避免在安装过程中出现任何交互式提示。然后,当包及其依赖项安装完成后,单独配置时区。

或者,设置时区安装 Python 包,无需进行DEBIAN_FRONTEND任何设置。

使用以下命令来设置时区,以创建指向纽约时区数据的符号链接:

ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime

如果您是从容器中的交互式 shell 运行的话。在 Dockerfile 中,DEBIAN_FRONTEND无论您以什么顺序执行这两件事,您都可以在不设置变量的情况下获得非交互式包安装。

FROM ubuntu:20.04

RUN ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
RUN apt-get update && apt-get install -y python3.9

注意使用apt-get而不是apt. apt用于交互式 shell,同时也apt-get可用于脚本。

相关内容