Quero configurar um script que altere automaticamente o fuso horário em uma máquina (executando o ubuntu 11.10) e também defina os valores corretos para o debconf
banco de dados. Eu tentei o seguinte, mas não funciona (no final, o fuso horário atual permanece inalterado e, se eu executar manualmente o dpkg-reconfigure tzdata
comando, os valores selecionados são de fato os antigos):
#!/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
Então, por agora, eu estou fazendo isso mexer com os arquivos /etc/localtime
e /etc/timezone
diretamente, mas eu prefiro preferem o dpkg-reconfigure
e debconf
forma.
Acabei de descobrir que, com o Debian Stretch (9), você também precisa alterar o / etc / localtime, assim algo como:
é preciso. Para alterar a resposta do andrekeller, você precisa:
fonte
ln -fs ....
linha desajeitada por simplesrm -f /etc/localtime
, e ainda funcionará (e o debconf seria recriado/etc/localtime
com os valores corretos); veja minha resposta para detalhes.Para usar o debconf, antes de chamar o dpkg-reconfigure, você também precisa remover
/etc/localtime
e/etc/timezone
. Também tenha cuidado com o possível espaço extra (como na sua pergunta!) Que não é benigno.Portanto, o "debconf way" que funciona (no Debian Stretch) seria:
O motivo é que o script de configuração do tzdata tenta ser inteligente e, se ele já foi configurado antes ou se o usuário interferiu manualmente nos fusos horários, se comportará de maneira diferente.
EXTRA
Para depurar um problema semelhante, faça primeiro:
que forneceria as seguintes informações:
o que mostraria que ele define com força os valores antes de solicitá-los ao usuário (substituindo, assim, os valores que você define
debconf-set-selections
).Então você mudaria shebang
/var/lib/dpkg/info/tzdata.config
de#!/bin/sh
para#!/bin/sh -x
e seguiria o fluxo do programa, onde veria que ele funciona:olhando para
/var/lib/dpkg/info/tzdata.config
você encontrará o seguinte:o que explica por que a resposta @fiction funciona. Também olhando mais no script, você descobriria que a resposta @andrekeller também funciona nas versões mais recentes do Debian se você remover '/ etc / localtime'.
Espero que esta ajuda de depuração o ajude quando a próxima versão do Debian tornar o script ainda mais inteligente e as respostas existentes se tornarem inválidas também. Mais informações sobre a depuração do debconf podem ser encontradas em debconf-devel (7)
fonte