Содержание

Отмена перехода на зимнее время в Centos 5 и 6

Оригинал http://www.itpad.ru/?p=2257

Как известно 30 октября сего года, по указке сверху, мы не переходим больше на зимнее время, но это знаем мы, а сервера? Придется помочь и им узнать о новых тенденциях в мировом времяисчисление.

Centos (RHEL) 5

Итак приступим, в качестве ОС возьмем Centos (RHEL) 5. За временные настройки отвечает пакет tzdata.

1. Для начала проверим версию установленного пакета tzdata:

# rpm -qa |grep tzdata

Увидим ответ:

tzdata-2010l-1.el5

То есть установлен старый пакет, который необходимо обновить (yum install tzdata).

2. Еще раз убедимся что система осуществит автоматический переход 30 октября:

# zdump -v /etc/localtime  | grep 2011

В ответ увидим такие строки:

/etc/localtime  Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0 gmtoff=10800
/etc/localtime  Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSD isdst=1 gmtoff=14400
->/etc/localtime  Sat Oct 29 22:59:59 2011 UTC = Sun Oct 30 02:59:59 2011 MSD isdst=1 gmtoff=14400
->/etc/localtime  Sat Oct 29 23:00:00 2011 UTC = Sun Oct 30 02:00:00 2011 MSK isdst=0 gmtoff=10800

Стрелочками выделены строчки означающии переход на зимнее время, Внимание! если у вас нет этих строк значит система не нуждается в обновлении и переход не будет осуществлен!

3. Убедившись что необходимо обновить пакет tzdata, скачаем новый пакет и обновим соответсвенно существующий:

Для Centos (RHEL) 5, архитектура i386:

# rpm  -Uvh http://mirror.secured.md/centos/5/updates/i386/RPMS/tzdata-2011h-1.el5.i386.rpm

Для архитектуры x86_64:

# rpm  -Uvh http://mirror.secured.md/centos/5/updates/x86_64/RPMS/tzdata-2011h-1.el5.x86_64.rpm

4. Проверяем результат:

# zdump -v /etc/localtime  | grep 2011
/etc/localtime  Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0 gmtoff=10800
/etc/localtime  Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSK isdst=0 gmtoff=14400

А вот теперь все ОК! Система не будет переходить на зимнее время.

Centos (RHEL) 6

А теперь поговорим как сделать все тоже самое но в 6 версии Centos.

1. Подключаем дополнительный репозиторий (CentOS-6.0 Continuous Release ( CR )), где находиться искомый пакет:

i386:

#rpm  -Uvh http://mirror.centos.org/centos/6/extras/i386/RPMS/centos-release-cr-6-0.el6.centos.i686.rpm

x86_64:

#rpm  -Uvh http://mirror.centos.org/centos/6/extras/x86_64/RPMS/centos-release-cr-6-0.el6.centos.x86_64.rpm

2. Установим (обновим) пакет tzdata

# yum update tzdata

3. Проверяем результат:

# zdump -v /etc/localtime  | grep 2011
/etc/localtime  Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0 gmtoff=10800
/etc/localtime  Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSK isdst=0 gmtoff=14400

Все в порядке, система знает о новых законах.

Fedora до 14 выпуска

На некоторых серверах стоит Fedora 10 и 12. yum update не помогает, какой репозиторий подключать неизвестно.

Официального пакета не нашел

Приходится ставить «левый»

wget ftp://rpmfind.net/linux/fedora/development/rawhide/x86_64/os/Packages/tzdata-2011l-3.fc17.noarch.rpm
rpm -Uv tzdata-2011l-3.fc17.noarch.rpm

А так же, на некоторых есть tzdata-java

wget ftp://195.220.108.108/linux/fedora/development/rawhide/x86_64/os/Packages/tzdata-java-2011l-3.fc17.noarch.rpm
rpm -Uv tzdata-java-2011l-3.fc17.noarch.rpm

PHP

# pecl install timezonedb

И добавляем строчку в php.ini

extension=timezonedb.so

И иногда делаем:

ln -s /usr/lib/php/extensions/no-debug-non-zts-20060613/timezonedb.so /usr/lib/php/extensions/timezonedb.so