Я хочу , чтобы создать скрипт , который автоматически меняет часовой пояс на компьютере (под управлением Ubuntu 11.10) , а также устанавливает правильные значения в debconf
базе данных. Я попытался следующие, но это не работает (в конце концов, текущая временная зона остается неизменной, и если я запускаю вручную dpkg-reconfigure tzdata
команду, выбранные значения действительно старые):
#!/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
Итак, на данный момент, я делаю это, возиться с файлами /etc/localtime
и /etc/timezone
напрямую, но я бы предпочел dpkg-reconfigure
и debconf
путь.
Я только что узнал, что с Debian Stretch (9), необходимо также изменить / и т.д. / LocalTime, что-то вроде:
необходим. Чтобы изменить andrekeller Ответим вам нужно:
источник
ln -fs ....
линию с простымrm -f /etc/localtime
, и он все равно будет работать (и Debconf бы воссоздать/etc/localtime
правильные значения); см мой ответ для деталей.Для использования Debconf, перед вызовом DPKG-переконфигурируйте, вам необходимо также удалить
/etc/localtime
и/etc/timezone
. Также остерегайтесь возможного дополнительного пространства (как в вашем вопросе!) , Которые не являются доброкачественными.Так «Debconf путь», который работает (в Debian Stretch) будет:
Причина заключается в том, что tzdata конфигурационного скрипт пытается быть умным, и если он когда-либо настроен перед или пользователем вручную вмешивался часовыми поясами, будет вести себя по-разному.
EXTRA
Для отладки подобной проблемы самостоятельно, вы бы сначала сделать:
которая обеспечила бы следующую информацию:
которая покажет вам , что он силой устанавливает значения , прежде чем спрашивать пользователя для них (таким образом , перезапись значения, заданные с
debconf-set-selections
).Тогда вы изменили бы хижину в
/var/lib/dpkg/info/tzdata.config
с#!/bin/sh
к#!/bin/sh -x
и следить за ходом программы, где вы видите , что он делает:глядя на
/var/lib/dpkg/info/tzdata.config
вас найти это:что объясняет, почему @fiction ответ работает. Кроме того, глядя в сценарий еще, вы обнаружите, что @andrekeller ответ также работает в более новых версиях Debian, если вы удалите / и т.д. / МестноеВремя '.
Надеюсь , эта помощь отладки поможет вам при следующей версии Debian делает сценарий еще умнее и существующие ответы стали недействительными тоже. Более подробную информацию по отладке Debconf можно найти в Debconf-разви (7)
источник