问题现象
因为最近在Pakistan SUPARCO中心Lahore地面站部署项目时,在使用RedHat Server 5.5 x86_64操作系统的数据服务器上,使用网络时间同步并选择Karachi(GMT+5)时区后,系统时间比实际时间快了1小时。
问题分析
在Google上搜了一些相关资料后,发现在2006和2007年有一些国家改变或停止了使用夏令时DST(Daylight Saving Time)。只有tzdata-2010e-i.el5.rpm包以及2007年前的包有上述问题现象,而Redhat Server 5.5 x86_64刚好使用的是此包。
解决办法
从以下链接下载tzdata补丁包
ftp://mirror.switch.ch/pool/2/mirror/redhat/linux/enterprise/5Server/en/os/SRPMS/tzdata-2010i-1.el5.src.rpm
检查支持包
#rpm –qa java-1.6*
若有java-1.6.0-openjdk-devel-* 则OK,若无可通过系统光盘安装
#cd /media/RHEL_5.5 x86_64 DVD/Server
#rpm –ivh java-1.6.0* (会安装5个包)
#rpm –qa glibc-common*
若有glibc-common-2.5* ,版本在2.3.4-20以上则可
若无可通过系统光盘安装
#rpm –ivh glibc-common*
设置时区(这一步非常重要)
设置成非Kararchi时区
#system-config-time
释放tzdata补丁包(将包释放到根目录)
#rpmbuild –rebuild /tzdata-2010i-1.el5.src.rpm
安装补丁包
#cd /usr/src/redhat/RPMS/x86_64
#rpm –ivh tzdata-java-2010i-1.el5.x86_64.rpm
# rpm -ivh –-force tzdata-2010i-1.el5.x86_64.rpm
重启系统
#shutdown –r now
将时区改回Karachi,完成。