20 Jan 2019

Ubuntu 16.04 (Xenial) 以降のタイムゾーン設定方法

debconf を使う場合は、次のようにする。

sudo ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime
sudo dpkg-reconfigure -f noninteractive tzdata

16.04 以降の推奨方法

これらのチケットによると、

Thus the preferred approach for changing the timzone is indeed the change of the /etc/localtime symlink, followed by dpkg-reconfigure.

とのことで、ubuntu 16.04 以降 (tzdata 2016a-1 以降) は、/etc/localtime に symlink をはり dpkg-reconfigure をするのが推奨される方法らしい。よって巷の古い記事にある /etc/timezone を変更するような方法では意図した挙動にならない。

背景を少し調べたメモ

systemd は?

timedatectl という systemd 由来のコマンドもある。

# タイムゾーン名確認
$ timedatectl list-timezones | grep Tokyo
Asia/Tokyo

# 設定
$ sudo timedatectl set-timezone Asia/Tokyo

# 確認
$ timedatectl
      Local time: ...snip

systemd を使える環境ならばこちらの方法に寄せるべきなのか、debconf を使ったほうがよいのか、どちらが良いのかはよくわからない。