一台测试服务器,之前设置为Asia/Shanghai
,但是前两天突然时区失效了。
失效之前曾经升级过libc-2.12.so -> libc-2.14.so
,不知道有没有关系。
# date
Fri Feb 10 07:01:22 Local time zone must be set--see zic manual page 2017
# date -R
Fri, 10 Feb 2017 07:14:10 +0000
用了tzselect
重新选择,无效。
重置/etc/localtime
,无效
rm -f /etc/localtime
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
/etc/sysconfig/clock
设置也无效
ZONE="Asia/Shanghai"
TZ="Asia/Shanghai"
UTC=false
ARC=false
最后在.bash_profile
里面设置TZ='America/Nassau'; export TZ
,却只对当前用户有效,对其他用户还是无效的。
# sudo -u www-data date
Fri Feb 10 06:52:02 Local time zone must be set--see zic manual page 2017
系统版本如下:
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.4 (Final)
Release: 6.4
Codename: Final
google,百度都翻了个底,还是找不到解决办法,只能来这里求助了。
D'accord, je l'ai résolu moi-même.
La raison est due à la mise à niveau
libc.so.6
!La description de la variable d'environnement TZ dans GNU souligne que si
TZ
n'a aucune valeur, le fuseau horaire sera sélectionné par défaut et l'adresse spécifique est déterminée par la bibliothèque libc.so.6. Avant la mise à niveau, le fichier de fuseau horaire par défaut pour centos était/etc/localtime
. Lorsque j'ai compilé la bibliothèque nouvellement compilée, j'ai défini--prefix=/usr/local/glibc-2.14
, ce qui a fait que le chemin par défaut est devenu/usr/local/glibc-2.14/etc/localtime
. Naturellement, le fuseau horaire par défaut n'a pas pu être trouvé.Solution :
fait !