Debian 13、Postgres 與美國時區問題 (★ 105 分)
Debian 13 的升級帶來了一個隱性的變化,對使用 PostgreSQL 並設定美國時區的系統管理員造成困擾。作者在將一台測試機從 Debian 12 升級到 Debian 13 後發現,過去使用的 `US/Pacific` 時區設定直接導致 PostgreSQL 無法啟動,日誌裡清楚記錄了參數錯誤。雖然一開始透過註解掉相關參數暫時解決,但卻造成後續應用顯示的資料時間軸出錯,顯示為依照 UTC(世界協調時間)而不是美國太平洋時間 (Pacific Time)。事後排查發現,原本常用的 `US/*` 格式已經不再被採用,需要改為 `America/Los_Angeles` 這類的「大洲/城市」形式。
令人失望的是,此次重要改動並未出現在 Debian 13 的官方發行說明中,連 `tzdata` 與時區變更也未被提及。事實上,這個更動早在 2023 年就已經被回報,`US/*` 型式的時區名稱已經被移到 tzdata-legacy(舊版相容套件)當中,但 Debian 並未在升級時給予提醒。因此,作者將自己的發現當作公開服務資訊,提醒其他系統管理員準備面對這個潛在陷阱。
在 Hacker News 討論區,許多使用者補充背景脈絡。實際上,`US/*` 等國家代稱的時區自 1990 年代起就被標註為過時,IANA(Internet Assigned Numbers Authority)時區資料庫早已規範以「大洲/代表性城市」方式命名,例如 `America/New_York`、`America/Los_Angeles`。背後原因除了避免政治爭議外,也確保對歷史資料的穩定性。然而,儘管如此,許多人因為習慣、沿用舊有設定檔或範例文件,以及第三方軟體延續支援舊格式,導致這些時區名稱依然廣泛存在於系統與應用程式中。
部分開發者指出,類似的情況顯示出自由軟體世界中溝通不足的問題:雖然 IANA 與社群早已公告更動,但缺乏有效的途徑讓普遍使用者得知。而 Debian 這次將舊版時區移到額外套件 `tzdata-legacy`,讓沒有安裝該套件的系統直接出錯。有人建議應該更積極提供升級提示,否則開發者與使用者將不得不透過錯誤日誌或論壇自行摸索。
討論中也出現若干建議,例如:伺服器最佳做法應該統一設定為 `Etc/UTC`,以避免跨時區應用造成混亂,再由前端應用或使用者介面決定正確時區顯示;同時提醒管理員可以透過 `timedatectl list-timezones` 指令來確認最新版本系統支援的所有時區名稱。整體來看,這起事件凸顯了系統相容性、技術慣性與社群溝通之間的張力,提醒企業與個人管理員在升級系統時必須額外注意看似微小但實際影響重大的設定差異。
👥 34 則討論、評論 💬
https://news.ycombinator.com/item?id=45218111