Заметка по мотивам предыдущей
Украина все-таки переходит на зимнее время, также на зимнее переходит Приднестровье. Отказались от перехода Россия и Беларусь, это если говорить о соседях.
Поэтому в любом случае на компьютер или сервер необходимо установить самый новый список часовых поясов.
Приступим.
Обновление штатными средствами Gentoo
Обновляем дерево portage
emerge --sync
Смотрим какие версии timezone-data у нас доступны:
eix timezone-data
Нам нужна версия 2011m которая вышла за неделю до времени Ч.
Ставим этот набор
emerge -av /usr/portage/sys-libs/timezone-data/timezone-data-2011m.ebuild
Проверяем, что символическая ссылка localtime правильная:
ls -lah /etc/localtime
/etc/localtime -> /usr/share/zoneinfo/Europe/Kiev
Проверяем время:
date --date='20111101'
Втр Ноя 1 00:00:00 EET 2011
Вот теперь все хорошо, система перейдет в часовой пояс EET. Для уверености можно просмотреть правила перевода времени для Киева
zdump -v Europe/Kiev | grep 2011
Europe/Kiev Sun Mar 27 00:59:59 2011 UTC = Sun Mar 27 02:59:59 2011 EET isdst=0
Europe/Kiev Sun Mar 27 01:00:00 2011 UTC = Sun Mar 27 04:00:00 2011 EEST isdst=1
Europe/Kiev Sun Oct 30 00:59:59 2011 UTC = Sun Oct 30 03:59:59 2011 EEST isdst=1
Europe/Kiev Sun Oct 30 01:00:00 2011 UTC = Sun Oct 30 03:00:00 2011 EET isdst=0
Как видим, в 2011-м году в Украине запланировано два перехода времени: март и октябрь.
Вариант №2. Ручная замена файлов timezone
Есть ситуации когда система очень давно не обновлялась и если начать обновление одного пакета, то он за собой потянет кучу зависимостей. Поэтому нужно по-тихому обновить timezone-data
Да, это не правильно, но такова жизнь 🙂
Заходим на сайт IANA, которая несколько месяцев нвзвд взяла на себя ответственность за хранение и распостранение наборов временных зон и выкачиваем оттуда самую последнюю версию
Зачем это нужно? Читаем статейку Глобальная база данных часовых поясов закрыта по судебному иску
Загружаем:
wget http://www.iana.org/time-zones/repository/releases/tzdata2011m.tar.gz
Распаковываем:
tar -xvf tzdata2011m.tar.gz
Смотрим есть ли правила для Киева:
cat europe | grep -C 10 Kiev
Zone Europe/Kiev 2:02:04 - LMT 1880
2:02:04 - KMT 1924 May 2 # Kiev Mean Time
2:00 - EET 1930 Jun 21
3:00 - MSK 1941 Sep 20
1:00 C-Eur CE%sT 1943 Nov 6
3:00 Russia MSK/MSD 1990
3:00 - MSK 1990 Jul 1 2:00
2:00 - EET 1992
2:00 E-Eur EE%sT 1995
2:00 EU EE%sT
И видим, что последняя строка переводит нас на +2, тоесть восточно-европейское время….. вродь похоже на правду 🙂
Компилируем новый набор файлов временных зон
zic europe
проверяем:
zdump -v Europe/Kiev | grep 2011
Europe/Kiev Sun Mar 27 00:59:59 2011 UTC = Sun Mar 27 02:59:59 2011 EET isdst=0
Europe/Kiev Sun Mar 27 01:00:00 2011 UTC = Sun Mar 27 04:00:00 2011 EEST isdst=1
Europe/Kiev Sun Oct 30 00:59:59 2011 UTC = Sun Oct 30 03:59:59 2011 EEST isdst=1
Europe/Kiev Sun Oct 30 01:00:00 2011 UTC = Sun Oct 30 03:00:00 2011 EET isdst=0
Теперь точно все в норме.
Если у Вас не прошли изменения, то нужно проверить есть-ли ссылка на файл зоны:
ls -la /etc/localtime
/etc/localtime -> /usr/share/zoneinfo/Europe/Kiev
Вот и все.
PS: Еще более простой способ. Выкладываем на фтп файл europe из архива tzdata и на компьютере выполняем 3 команды:
wget ftp://10.0.0.1/tzdata/europe
zic europe
zdump -v Europe/Kiev | grep 2011