Quiero configurar un script que cambie automáticamente la zona horaria en una máquina (ejecutando ubuntu 11.10) y también establezca los valores correctos para la debconf
base de datos. He intentado lo siguiente, pero no funciona (al final, la zona horaria actual permanece sin cambios, y si ejecuto manualmente el dpkg-reconfigure tzdata
comando, los valores seleccionados son los antiguos):
#!/bin/sh -e
echo "tzdata tzdata/Areas select Europe" | debconf-set-selections
echo "tzdata tzdata/Zones/Europe select Madrid" | debconf-set-selections
echo "tzdata tzdata/Zones/America select " | debconf-set-selections
dpkg-reconfigure -f noninteractive tzdata
Así que, por ahora, lo estoy haciendo jugar con los archivos /etc/localtime
y /etc/timezone
directamente, pero prefiero preferir el dpkg-reconfigure
y debconf
forma.
Me acabo de enterar de que con Debian Stretch (9) también necesitas cambiar / etc / localtime, por lo que algo así como:
es necesario Para modificar la respuesta de andrekeller necesita:
fuente
ln -fs ....
línea desgarbada con simplerm -f /etc/localtime
, y aún funcionará (y debconf volvería a crear/etc/localtime
con los valores correctos); Vea mi respuesta para más detalles.Para usar debconf, antes de llamar a dpkg-reconfigure, también debe eliminar
/etc/localtime
y/etc/timezone
. También tenga cuidado con el posible espacio adicional (como en su pregunta) que no son benignos.Entonces, "debconf way" que funciona (en Debian Stretch) sería:
La razón es que el script de configuración tzdata intenta ser inteligente, y si alguna vez se configuró antes o si el usuario se ha entrometido manualmente con zonas horarias, se comportará de manera diferente.
EXTRA
Para depurar un problema similar, primero debe hacer:
que proporcionaría la siguiente información:
lo que le mostraría que ESTABLECE los valores con fuerza antes de solicitarlos al usuario (sobrescribiendo así los valores que establezca
debconf-set-selections
).Luego, cambiaría shebang
/var/lib/dpkg/info/tzdata.config
de#!/bin/sh
a#!/bin/sh -x
, y seguiría el flujo del programa, donde vería que sí:mirando
/var/lib/dpkg/info/tzdata.config
esto encontrarás esto:lo que explica por qué funciona @fiction answer. También mirando más en el script, encontrará que la respuesta @andrekeller también funciona en versiones más recientes de Debian si elimina '/ etc / localtime'.
Esperemos que esta ayuda de depuración lo ayude cuando la próxima versión de Debian haga que el script sea aún más inteligente y las respuestas existentes también se vuelvan inválidas. Se puede encontrar más información sobre la depuración de debconf en debconf-devel (7)
fuente