timedatectl 和 dpkg-reconfigure 在设置时区方面有什么区别?

timedatectl 和 dpkg-reconfigure 在设置时区方面有什么区别?

我发现了两种在 Ubuntu 服务器上设置时区的可能方法。

使用 timedatectl

timedatectl set-timezone CET

使用 dpkg-reconfigure

echo "Etc/CET" > /etc/timezone
dpkg-reconfigure --frontend noninteractive tzdata

这些方法有区别吗?如果有,区别是什么?

我发现这个问题,但这并不是我要找的东西。我想知道这两种方法之间的区别,这样我才能知道自己在做什么。

第二种方法是否不再适用于 Ubuntu 16.04?

答案1

timedatectl 由 systemd 引入,与 init 系统相关

因此如果你在 devuan 中尝试此命令,它将不起作用,因为 devuan 是一个决定拒绝 systemd 的团队。

dpkg 方式适用于任何支持 .deb 的系统,因为它与打包系统相关。

答案2

抱歉回答晚了,但我发现自己今天也问了同样的问题,所以我做了一些研究,想与大家分享:

timedatectl程序是大多数现代 Linux 发行版的一部分systemd,因此可在大多数现代 Linux 发行版上使用,包括最新的 Ubuntu。

如果您知道您的时区,America/New_York或者Europe/Berlin您可以使用您提到的“发射后不管”命令轻松设置您的当地时间并完成它,这使得它对于系统设置脚本中的自动化具有吸引力:

sudo timedatectl set-timezone <timezone>

如果你不知道你的时区,你可以通过以下方式打印出所有可用时区的列表

timedatectl list-timezones

该命令dpkg-reconfigure tzdata用于重新配置时区数据包,其中还包含时区数据。运行该命令将弹出一个对话框,允许您选择代表时区的地理区域和城市,因此您可以不需要提前了解或找到您的时区。

此方法较旧,已用于在 Debian 和 Ubuntu 中设置时区多年,因此此方法可能不适用于某些较新版本的 Ubuntu,因为它可能已被取代timedatectl

总结一下:它们的作用相同,一个比另一个新,如果您仍在处理旧系统,它们可能可用,也可能不可用。所以最好了解它们。我更喜欢timedatectl在配置系统时使用它,因为它只是一个可以放入脚本的单行代码,因为我事先知道我的区域,而不是用tzdata箭头键手动浏览时区列表,如果您不知道自己的时区并想缩小时区范围,这可能会派上用场。

截至 3 月 23 日,两者仍可在 Debian 11 (bullseye) 中使用,甚至还可以在测试版 (sid/bookworm) 中使用。

相关内容