Answers:
您需要将前端指定为“非交互式”,它将保存您的当前设置。
dpkg-reconfigure将当前系统设置作为福音,因此只需按通常方式更改时区并使用非交互式标志运行它
例如,让我更改为“ Europe / Dublin”,我所在的位置:
# echo "Europe/Dublin" > /etc/timezone
# dpkg-reconfigure -f noninteractive tzdata
显然,这使您可以使用puppet / cfengine来分配/ etc / timezone。
echo 'Europe/Dublin' | sudo tee /etc/timezone > /dev/null
sudo bash -c 'echo "Europe/Dublin" > /etc/timezone'
由于已接受的答案不再起作用(Debian Jessie,2017年4月),因此从@gertvdijk的注释链接修改的方法现在似乎可以完成工作:
sudo ln -fs /usr/share/zoneinfo/Europe/Dublin /etc/localtime
sudo dpkg-reconfigure -f noninteractive tzdata
您应该能够使用debconf-set-selections来预设配置。安装debconf-utils并debconf-get-selections | grep tzdata
在配置正确的系统上运行,以弄清楚对其进行设置的内容。
您也可以使用从(现已解散)的配方木偶维基(存档),它取代/etc/localtime
与适当的时区信息文件/usr/share/zoneinfo
: -
class timezone {
package { "tzdata":
ensure => installed
}
}
class timezone::central inherits timezone {
file { "/etc/localtime":
require => Package["tzdata"],
source => "file:///usr/share/zoneinfo/US/Central",
}
}
class timezone::eastern inherits timezone {
file { "/etc/localtime":
require => Package["tzdata"],
source => "file:///usr/share/zoneinfo/US/Eastern"
}
}
class timezone::pacific inherits timezone {
file { "/etc/localtime":
require => Package["tzdata"],
source => "file:///usr/share/zoneinfo/US/Pacific"
}
}
class timezone::mountain inherits timezone {
file { "/etc/localtime":
require => Package["tzdata"],
source =>
"file:///usr/share/zoneinfo/US/Mountain"
}
}
我不确定dpkg-reconfigure是否还有其他功能,但是我使用了上面的配方,它可以完美地工作。
它非常简单,只需要键入命令并回答简单的问题即可。
然后运行:
/usr/bin/tzselect