Cuando trato de
apt-get install -y tzdata
aparece la opción de línea de comando para elegir la zona horaria. Estoy tratando de usar esto en un script para realizar alguna configuración, ¿cómo puedo hacer que apt-get se ejecute sin la entrada del usuario?
Sé reconfigurar los tzdata que puedo hacer
echo "America/New_York" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Pero cuando lo instalo, necesito que se ejecute por completo, incluso si no establece la zona horaria correcta, siempre puedo volver a configurarlo.
Lo intenté
echo 5 | apt-get install -y tzdata
pero no funciona como se esperaba.
DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
paso anteriorDEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
era la única forma en que podía hacer que esto se instalara sin un indicador.Si alguien quiere lograrlo
Dockerfile
, use como se muestra a continuación.fuente
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ...
laDEBIAN_FRONTEND
variable debe establecerse para lainstall
pieza. No funciona si se establece antes&&
de laupdate
pieza.Todo el crédito por esto debe ir a @PYA, pero el orden correcto debe ser:
ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime export DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata dpkg-reconfigure --frontend noninteractive tzdata
fuente
Recientemente encontré la siguiente solución en un Dockerfile que construye la biblioteca Cingulata FHE:
Básicamente, utiliza la API proporcionada por ipapi.co para recuperar la información de la zona horaria. Esto configura automáticamente la zona horaria correctamente en lugar de omitir el cuadro de diálogo y usar el predeterminado (UTC).
fuente
Así es como lo hice:
echo 1 > input.txt echo 1 >> input.txt apt-get install -y tzdata < input.txt ln -fs /usr/share/zoneinfo/America/Los_Angeles /etc/localtime echo America/Los_Angeles > /etc/timezone
Las dos primeras declaraciones de eco crean un archivo de texto que contiene los números de selección para el menú de área geográfica y el menú de ciudad / región. Este archivo luego se usa para proporcionar entrada al comando apt-get install. El paquete tzdata se instalará sin solicitar ninguna entrada del usuario. La zona horaria se establecerá en África / Abidjan como si ingresara 1 y 1 en respuesta a las indicaciones que normalmente recibiría. Luego cambio la zona horaria a la que quiero con los dos últimos comandos.
En lugar de 1 y 1, podría usar los números reales para el área geográfica y la ciudad / región que desee, pero me parece que esos números podrían cambiar.
fuente