/etc/localtime 不是符号链接

/etc/localtime 不是符号链接

根据localtime 来自 Linux 手册页:

它应该是指向 /usr/share/zoneinfo/ 的绝对或相对符号链接,后跟时区标识符,例如“Europe/Berlin”或“Etc/UTC”。

这是我的环境中的输出ls -la /etc/localtime,它不是符号链接:

-rw-r--r--. 1 root root 724 Apr  3  2012 /etc/localtime

并为cat /etc/localtime

TZif2їԒazpҹӂ­

答案1

可能发生的情况是制作了区域文件的副本,而不是符号链接或硬链接。

您可以通过比较系统上安装的区域文件的哈希值来确定来源。

$ sha256sum /etc/localtime
821d6d97e3d34a3de2315279260e139adf484e581b4d187f8e6b532403b0f1c6  /etc/localtime

$ find /usr/share/zoneinfo/ -type f -exec sha256sum "{}" + |grep 821d6d97e3d34a3de2315279260e139adf484e581b4d187f8e6b532403b0f1c6
821d6d97e3d34a3de2315279260e139adf484e581b4d187f8e6b532403b0f1c6  /usr/share/zoneinfo/posix/America/Kentucky/Louisville
821d6d97e3d34a3de2315279260e139adf484e581b4d187f8e6b532403b0f1c6  /usr/share/zoneinfo/posix/America/Louisville
821d6d97e3d34a3de2315279260e139adf484e581b4d187f8e6b532403b0f1c6  /usr/share/zoneinfo/America/Kentucky/Louisville
821d6d97e3d34a3de2315279260e139adf484e581b4d187f8e6b532403b0f1c6  /usr/share/zoneinfo/America/Louisville

第二个字段中的 ls 输出中的“1”表示该文件有 1 个硬链接,因此它不是指向与 zoneinfo 路径中的原始文件相同的文件的链接。

在现代 Fedora 上,您可以使用 timedatectl

timedatectl list-timezones

或者

timedatectl set-timezone time_zone

否则,只需从 /usr/share/zoneinfo/ 中 ln -sf 覆盖 /etc/localtime 中的相应区域文件(以防万一,进行备份!)

我怀疑这种情况一定是有问题的,之所以最好有链接而不是副本,是因为软件包更新可能会改变时间规则。但这是 Fedora 17,已经有 10 年历史了……所以它没有得到任何更新;)

相关内容