在Ubuntu系統中,執行命令apt-get install -y tzdata以安裝tzdata軟件包。但是,最近發現,在Ubuntu 18.04 (Bionic Beaver)上無法自動安裝該軟件包,這里的tzdata版本為2018d-1。
在tzdata 2017的各個版本中(如2017c),安裝過程中采用默認的系統時區,所以可以無交互地順利安裝完畢,輸出信息如下。
Current default time zone: 'Etc/UTC' Local time is now: Wed Apr 25 03:38:23 UTC 2018. Universal Time is now: Wed Apr 25 03:38:23 UTC 2018. Run 'dpkg-reconfigure tzdata' if you wish to change it.
但是從tzdata 2018版本開始(如2018d),安裝過程中默認采用交互式,即要求輸入指定的Geographic area和Time zone,從而必須人工值守進行安裝,輸出信息如下。
Configuring tzdata ------------------ Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities, representing the time zones in which they are located. 1. Africa 4. Australia 7. Atlantic 10. Pacific 13. Etc 2. America 5. Arctic 8. Europe 11. SystemV 3. Antarctica 6. Asia 9. Indian 12. US
解決步驟如下:
1. 設置tzdata的前端類型(通過環境變量)
ENV DEBIAN_FRONTEND noninteractive
tzdata的前端類型默認為readline(Shell情況下)或dialog(支持GUI的情況下)。
2. 安裝tzdata軟件包
apt-get install -y tzdata
此時,采用默認時區Etc/UTC。
3. 建立到期望的時區的鏈接
ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
設置時區為America/New_York。
4. 重新配置tzdata軟件包,使得時區設置生效
dpkg-reconfigure -f noninteractive tzdata