FreeBSD timezone для России после перехода на летнее время.
Этой весной в России отменили переход на летнее время. Хорошо это или плохо для всей страны – покажет время. Для нас же, юниксойдов, это скорее проблема. Нужно обновлять файлы timezone. Многие linux дистрибутивы уже это сделали, а вот старушка FreeBSD, как всегда, сама у себя на уме. В RELENG_8 все хорошо, а в старых системах 7.X, 8.X чтобы обновиться, нужно допилить напильником. Ниже я дам несколько линков о теоретической части вопрос, а тут практика:
1) Нужно достать новый файл с описанием европейских timezones.
Сделать это можно или из cvs/svn FreeBSD RELENG_8 или с ftp проекта, который собственно на добровольных началах мейнтейнит базу всех timezone планеты (ftp://elsie.nci.nih.gov/pub/).
2) После получения файла europe версии 8.33 или выше, его нужно положить в /usr/src/share/zoneinfo
3) cd /usr/src/share/zoneinfo && make clean ; make install clean
4) Получили новые файлы в /usr/share/zoneinfo/
5) Проверяем, что все ок. Делается это утилитой zdump, сейчас лето и старая зона должна показывать MSD для Москвы, и MSK для нового файла зоны. Причем время должно быть одинаковым.
# zdump /usr/share/zoneinfo/Europe/Moscow
/usr/share/zoneinfo/Europe/Moscow Fri Aug 12 17:11:22 2011 MSK
6) Если нужно, то копируем /usr/share/zoneinfo/Europe/Moscow в /etc/localtime
Линки:
Статья про время в linux на opennet
Tz database
P.S
Я написал соответствующий PR в FreeBSD, с запросом как же быть с системами, которые будут поддерживать еще несколько лет (7.3 например), но имеют старые файлы зон для России. Мне вежливо ответили, что понимают мое беспокойство, но ничего сделать не могут. В базовую систему изменения вносятся только в случае проблем с безопасностью. Т.е. ждем, когда кто-нибудь придумает, как использовать старый файл зоны для проникновения в систему? Забавно.
P.S 2
Как мне подсказал Максим Коновалов из Russian FreeBSD Team, можно использовать порт:
misc/zoneinfo
P.S 3
Самый простой и самый некрасивый вариант:
cp /usr/share/zoneinfo/Etc/GMT+4 /etc/localtime
|
|