- PVSM.RU - https://www.pvsm.ru -
Как многие помнят, в этом году был принят закон, в связи с которым поменялись часовые пояса в России с 26 октября 2014 г. Само собой, сразу после принятия закона я поставил в календарь напоминалку на начало октября «обязательно обновить tzdata». Каково же было моё удивление, когда я не обнаружил апдейтов tzdata в debian и ubuntu. Решил подождать еще немного, наткнулся на открытые баги в дистрибутивах (Ubuntu #1377813 [1], #1371758 [2], Debian #761267 [3]). Коллеги усиленно напоминали о необходимости апдейтов, но мейнтейнеры не реагировали. Чтобы не устроить себе аврал к концу месяца, решил собрать пакеты и проапдейтить вручную. Важно отметить, что информацию о зонах в некотором софте, например, в MySQL, потребуется обновить вручную. Далее последует короткий мануал.
К моменту, когда я решился собрать апдейты, в debian wheezy и почти сразу в ubuntu utopic появился пакет 2014h, поэтому я просто взял tzdata_2014h-2.dsc, tzdata_2014h.orig.tar.gz, tzdata_2014h-2.debian.tar.xz и собрал без особых изменений.
Поставил компиляторы:
apt-get install devscripts dpkg-dev debhelper build-essential
Распаковал исходники:
dpkg-source -x tzdata_2014h-2.dsc
cd tzdata-2014h
Поставил зависимости, подправил версию и собрал:
apt-get install default-jre-headless rdfind symlinks
dch -i
dpkg-buildpackage -rfakeroot
cd ../
Осталось установить:
dpkg -i tzdata*deb
Алгоритм для старых дистрибутивов практически не отличается, разница лишь в том, что пакет rdfind отсутствует в дистрибутиве. Проще всего оказалось его собрать.
Исходники были взяты в debian packages.debian.org/wheezy/rdfind [4], установлены зависимости и собран deb пакет.
dpkg-source -x rdfind_1.3.1-1.dsc
apt-get install nettle-dev
cd rdfind-1.3.0/
dpkg-buildpackage -rfakeroot
cd ../
dpkg -i rdfind*deb
После обновления системной tzdata нужно получить tzinfo для MySQL скриптом из комплекта:
mysql_tzinfo_to_sql /usr/share/zoneinfo > /tmp/tzinfo-mysql-2014h-2.sql
Далее, этот файлик заливаем в MySQL. Подключаемся с правами root, например, так:
mysql --defaults-file=/etc/mysql/debian.cnf
Выбираем базу, кодировку и файл:
use mysql
set names utf8;
source /tmp/tzinfo-mysql-2014h-2.sql
На момент окончания написания этого поста мейнтейнеры ubuntu, вероятно, среагировали на моё письмо в ubuntu-devel-discuss и протолкнули апдейты в proposed. Вероятно, в ближайшие дни апдейты tzdata прилетят из официальных репозиториев, но MySQL всё равно понадобится обновлять вручную.
UPD. Для OpenJDK апдейты поставятся вместе с системными, а для Sun/Oracle Java нужно воспользоваться «фирменной» утилитой [5].
Автор: motienko
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/72142
Ссылки в тексте:
[1] #1377813: https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/1377813
[2] #1371758: https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/1371758
[3] #761267: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=761267
[4] packages.debian.org/wheezy/rdfind: https://packages.debian.org/wheezy/rdfind
[5] нужно воспользоваться «фирменной» утилитой: http://habrahabr.ru/post/240915/
[6] Источник: http://habrahabr.ru/post/240937/
Нажмите здесь для печати.