you tzdata the subsequent please geographic configuring ubuntu automation timezone

ubuntu - tzdata - please select the geographic area in which you live subsequent configuration docker



Método no interactivo para dpkg-reconfigure tzdata (5)

Cuando configuro por primera vez un servidor Ubuntu, me aseguro de que aptitude install tzdata , luego dpkg-reconfigure tzdata para que configure mi zona horaria correctamente.

Estoy tratando de automatizar la configuración de mi servidor con un script, y me di cuenta de que esta pieza es una especie de llave en ser automática, ya que requiere una sesión interactiva con la intervención del usuario.

¿Hay alguna manera de usar dpkg-reconfigure sin que sea interactivo?


Avanzando la respuesta de josch ; establezca los valores db de debconf y elimine /etc/{localtime,timezone} antes de ejecutar dpkg-reconfigure : -

$ echo "tzdata tzdata/Areas select Europe" > some/file.txt $ echo "tzdata tzdata/Zones/Europe select Berlin" >> some/file.txt $ sudo debconf-set-selections some/file.txt $ sudo rm /etc/timezone $ sudo rm /etc/localtime $ sudo dpkg-reconfigure -f noninteractive tzdata Current default time zone: ''Europe/Berlin'' Local time is now: Thu Sep 1 17:13:16 CEST 2016. Universal Time is now: Thu Sep 1 15:13:16 UTC 2016.

Se sabe que este método funciona en:

  • Ubunty Trusty (14.04.5 LTS)

Encontré los siguientes detalles para ti.

https://serverfault.com/a/84528

Editar: (copiar y pegar desde el enlace de arriba ...)
Debe especificar el frontend como `no interactivo ''y guardará su configuración actual.

dpkg-reconfigure tomará la configuración actual del sistema como evangelio, así que simplemente cambie su zona horaria como lo haría normalmente y ejecútela con la bandera no interactiva

por ejemplo, para cambiar a "Europa / Dublín" donde estoy:

# echo "Europe/Dublin" > /etc/timezone # dpkg-reconfigure -f noninteractive tzdata

Obviamente, esto le permite usar títere / cfengine como quiera distribuir / etc / timezone también.


Haciendo esto en un Dockerfile :

FROM ubuntu:xenial ## for apt to be noninteractive ENV DEBIAN_FRONTEND noninteractive ENV DEBCONF_NONINTERACTIVE_SEEN true ## preesed tzdata, update package index, upgrade packages and install needed software RUN echo "tzdata tzdata/Areas select Europe" > /tmp/preseed.txt; / echo "tzdata tzdata/Zones/Europe select Berlin" >> /tmp/preseed.txt; / debconf-set-selections /tmp/preseed.txt && / rm /etc/timezone && / rm /etc/localtime && / apt-get update && / apt-get install -y tzdata ## cleanup of files from setup RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

En mis experimentos, determiné la eliminación de los archivos en /etc necesarios.


Hay un error ( https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/1554806 , no corregido en el momento de escribir esta respuesta) en 16.04 que hace que el contenido de /etc/timezone sea se sobrescribe con el valor anterior cuando se ejecuta dpkg-reconfigure -f noninteractive tzdata . La solución es la siguiente (del informe de error anterior):

$ sudo ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime $ sudo dpkg-reconfigure --frontend noninteractive tzdata Current default time zone: ''America/New_York'' Local time is now: Mon Feb 20 07:30:33 EST 2017. Universal Time is now: Mon Feb 20 12:30:33 UTC 2017. $ cat /etc/timezone America/New_York

No es necesario cambiar manualmente los contenidos de /etc/timezone . Esto funcionó para mí en Ubuntu 16.04.2 LTS.


La respuesta de swill no es cómo se hace correctamente. Si desea configuración dpkg desatendida / guionizada de paquetes, entonces desea usar el mecanismo de preconfiguración de debconf.

En su caso, esto significa que debe hacer lo siguiente:

  • Establezca las siguientes variables de entorno para evitar que debconf intente hacerle al usuario cualquier pregunta:

    export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true

  • luego preseleccione debconf con el siguiente archivo preseed.txt (o cualquier otra configuración que desee):

    tzdata tzdata/Areas select Europe tzdata tzdata/Zones/Europe select Berlin

  • configura el archivo preseed anterior ejecutando:

    debconf-set-selections /your/preseed.txt

  • ahora puede instalar tzdata (si aún no está instalado) a través de apt o ejecutar dpkg-reconfigure . Al final, tzdata se configurará de acuerdo con lo que especificó en su archivo preseed debconf.

Recuerde que puede automatizar muchos más utilizando la preconfiguración de debconf. Por ejemplo, en mis preseeds siempre configuro:

locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8 locales locales/default_environment_locale select en_US.UTF-8

Siempre puede inspeccionar la configuración de debconf de su sistema actual ejecutando debconf-get-selections . La salida debería darle una idea de la cantidad de configuración del sistema que puede automatizar utilizando la preconfiguración de debconf.