我正在尝试安装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
可用于脚本。