Как стать автором
Обновить

Комментарии 58

Перевод часов в 2014 году затронет и многих хозяев смартфонов с Android, купленных на китайских сайтах, а также владельцев других устройств, не получающих автоматически обновления tzdata (планшетов, телевизоров, медиа-плееров, компьютеров с windows xp и т.д.).

Для московского времени я предлагаю быстрый фикс проблемы: поменять временную зону на азиатскую (например, 'Asia/Baghdad') или африканскую (например, 'Africa/Mogadishu'). Для остальных регионов можно подобрать подходящую таймзону из регионов ближе к экватору или соседних областей России.
Для рутованных телефонов есть замечательная утилитка Timezone Fixer в маркете. Нерутованный китайский андроид, на мой взгляд, права на жизнь не имеет.
Пока что там только 2014f обновление.
А мужики-то и не знают
Release 2014f — 2014-08-05 17:42:36 -0700

Changes affecting future time stamps

Russia will subtract an hour from most of its time zones on 2014-10-26
at 02:00 local time. (Thanks to Alexander Krivenyshev.)
There are a few exceptions: Magadan Oblast (Asia/Magadan) and Zabaykalsky
Krai are subtracting two hours; conversely, Chukotka Autonomous Okrug
(Asia/Anadyr), Kamchatka Krai (Asia/Kamchatka), Kemerovo Oblast
(Asia/Novokuznetsk), and the Samara Oblast and the Udmurt Republic
(Europe/Samara) are not changing their clocks. The changed zones are
Europe/Kaliningrad, Europe/Moscow, Europe/Simferopol, Europe/Volgograd,
Asia/Yekaterinburg, Asia/Omsk, Asia/Novosibirsk, Asia/Krasnoyarsk,
Asia/Irkutsk, Asia/Yakutsk, Asia/Vladivostok, Asia/Khandyga,
Asia/Sakhalin, and Asia/Ust-Nera; Asia/Magadan will have two hours
subtracted; and Asia/Novokuznetsk's time zone abbreviation is affected,
but not its UTC offset. Two zones are added: Asia/Chita (split
from Asia/Yakutsk, and also with two hours subtracted) and
Asia/Srednekolymsk (split from Asia/Magadan, but with only one hour
subtracted). (Thanks to Tim Parenti for much of the above.)
Да ё-моё, 2014h, конечно, там же по контексту понятно, что я имел в виду не то, что написал ;)
В 2014h — изменения только в прошлых годах. Не думаю, что кому-то на Андроиде важно, что было в Новокузнецке в 1920-ом году. Если только эстетам :) 2014g — тоже самое, только прошлые даты.
… или место проживания. Не обязательно на Africa/Mogadishu :D
Для Solaris 11 есть смысл запросить в поддержке IDR 1418.1, который апдейтит пакет timezone до версии 2014f. В SRU обновление таймзоны, по словам той же поддержки, появится не раньше декабря… В RHEL уже 2014h доступно, но Оракл не торопится.

Пока готовился к переходу, обнаружился вот такой прекрасный баг в Солярке, причем он там с незапамятных времен: stackoverflow.com/questions/26401133/weird-mktime-behavior-in-solaris-11-2-bug-or-something-else Поддержку Оракла я известил, но им, похоже, пофигу.
Есть в наличии патч idr1417.1.p5p и idr1418.1.p5p.
Они только под Solaris 11.2 sparc (под 11 и 11.1 не подойдут, саппорт обещает позднее).

Также Оракл выпустил временный патч IDR151591-01 для перехода на зимнее время в Solaris 10. По заявлениям самморта, этот патч устанавливается заказчиками на свой страх и риск. Никаких гарантий Оракл не дает. Полноценных проверок не проводилось.
Постоянный патч будет выпущен позднее. По предварительной информации от Оракл вовремя он выпущен не будет.
Для установки данного временного патча требуется патч 148559-10 (или 142909-17).

Под 10 sparc патч лично опробовал, проблем не возникло. Под 11.2 лично не проверял, нет таких серверов, жду под 11.1.

Если кому надо, поделюсь.
А можно пока просто файл таймзоны скопировать с той системы, для которой есть патч, на ту, где патча нет…
Только что из саппорта поступил Набор IDR для Solaris 11.1 FCS (sparc).

Пишут «Выход финальных патчей запланирован на период после 26-го Октября, Мало вероятно, что патчи будут до этой даты, пожалуйста воспользуйтесь IDR. »

В наличии патч idr1444.1.p5p
Так же надо будет не забыть обновить таймзоны в PostgreSQL, я, к сожалению, его пока не знаю настолько, чтобы предлагать рабочий способ
Я конечно извиняюсь, но зачем что-то собирать?
wget http://mirror.yandex.ru/debian/pool/main/t/tzdata/tzdata_2014h-2_all.deb
dpkg -i tzdata_2014h-2_all.deb


На убунте тоже работает (12.04/14.04)
Зачем вы пересобирали пакеты для Debian/Ubuntu? Можно же просто поставить обновления
Когда ТС писал статью и обновлялся обновлений еще не было. Я сам сидел в готовности в свой репозиторий пакет собирать, но раз в proposed пришло, то
sudo sh -c «echo 'deb archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-proposed restricted main multiverse universe' >> /etc/apt/sources.list»
sudo apt-get update
sudo apt-get install tzdata
или как-то так.
Всё верно, так и было. Обновлений не было, на баги не реагировали.
Ну я просто сам в таком же состоянии сидел.
Отдельное спасибо за напоминание про MySQL, а то бы мог и забыть.
В апдейт можно вынести помимо того, что появилось в proposed краткую инструкцию типа

sudo sh -c «echo 'deb archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-proposed restricted main multiverse universe' >> /etc/apt/sources.list»

В файл /etc/apt/preferences пишем

Package: *
Pin: release a=trusty-proposed
Pin-Priority: 400

И

sudo apt-get update && sudo apt-get -t -y trusty-proposed install tzdata && sudo apt-get -y dist-upgrade

В /etc/apt/preferences пишем, что бы все из proposed не притащило, а можно было оттуда ставить только то, что нам нужно.
Для precise меняем trusty на precise.

Ну или можно допилить инструкцию еще засунув в echo содержимое /etc/apt/preferences
Просто дабы те, кто столкнутся первый раз с проблемами не мучались.

P.S. Злой хабр кавычки заменил в первой команде с нужных на елочки.
добавил ссылку на этот камент.
Я так понял, MySQL использует существующие tzdata из системы если иное не указано в соответствующих таблицах. И все эксторты-импорты в sql ни к чему. Достаточно перезапустить MySQL после обновления системных tzdata. Попправьте меня, если я не прав.
Возможно вы правы, но экспериментировать на продакшне не хотелось бы. Когда «отменяли» переход в 2011 г., у нас был mysql 5.1 и точно пришлось обновлять таблицы. Возможно, в свежих версиях mysql что-то изменилось. К вопросу перезапуска — у нас, например, плановый перезапуск возможен только ночью в выходной день, с предварительным оповещениям о работах. Обновить же данные в таблицах можно в рабочем порядке.
Кстати. В документации по 5.6 сказано, раздел 4.4.6:
After running mysql_tzinfo_to_sql, it is best to restart the server so that it does not continue to use any previously cached time zone data
, т.е. сервер всё-таки нужно перезапустить дабы случайно не начали использоваться ранее закешированные данные.
Похоже, сервер может работать и без этих таблиц. Но в данном случае нельзя указать часовой пояс (Вроде Asia/Yekaterinburg) при работе с MySQL, т.е. не будет работать SET timezone и SET GLOBAL timezone.
Спасибо, действительно, рекомендуют перезапускать. Но в нашей конкретной конфигурации мы, вероятно, будем считать, что если обновились tz за неделю до события, то кеши к моменту перевода уже почистятся.
В итоге не отработало правильно. Пришлось сделать SET GLOBAL time_zone = '+03:00';
Статья полезна, но в общем-то не очень нужна, поскольку и в debian (6-lts, 7, 8) и в ubuntu (10.04-lts, 12.04-lts и 14.04-lts) обновления пришли.
А покажи где у тебя видно?, у меня:
root@tk-wordpress-01v:~# apt-cache policy tzdata
tzdata:
  Installed: 2014c-0ubuntu0.12.04
  Candidate: 2014e-0ubuntu0.12.04
  Version table:
     2014e-0ubuntu0.12.04 0

root@tk-wordpress-01v:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.4 LTS
Release:        12.04
Codename:       precise


apt-get update понятное дело сделано
sudo sh -c «echo 'deb archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-proposed restricted main multiverse universe' >> /etc/apt/sources.list»
sudo apt-get update
apt-cache policy tzdata

P.S. Парсер заменяет кавычки на елки и сжирает http:// перед адресом, сами исправьте.
Обновление в proposed
Про proposed видел выше, спасибо. Ожидал что в стандартные приехало.
К сожалению нет. Сам сегодня обновлял все что под руку попало, потому и привел построчную инструкцию :)
В trusty появилось 2014i, которое включает предыдущие изменения и новые для Беларуси.
Прилетело таки
tzdata (2014i-0ubuntu0.12.04) precise; urgency=critical

* New upstream release with zone changes in 4 days for Belarus.

— Adam Conrad <adconrad@ubuntu.com> Wed, 22 Oct 2014 17:22:43 -0600

tzdata (2014h-0ubuntu0.12.04) precise; urgency=critical

* New upstream release, critical urgency for Russian zone
changes coming up on October 26th, 2014 (LP: #1377813)

— Adam Conrad <adconrad@ubuntu.com> Fri, 17 Oct 2014 13:32:38 +0200


packages.ubuntu.com/precise/tzdata
Скажите, а не проще ли сейчас делать примерно так по обновлению tzdata:
wget скачиваем самый свежий deb пакет отсюда: launchpad.net/ubuntu/+source/tzdata
потом sudo dpkg -i <самый свежий пакет tzdata>.deb

Я пробовал на 12 lts через aptitude найти и поставить нужный пакет tzdata, но там самый свежий только с литерой 'e' ставится.
Сейчас проще поставить из proposed, как я предложил. Нормально aptом, из убунтовского репозитория.
MySQL как-то не хочет с этим фиксом работать. select now() выдает старое время, а рестартовать все базы не хочется, пусть даже и ночью.
Проверял так — обновляю tzdata, делаю mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql и перевожу время date -u -s «25 oct 2014 21:55:55»
И чуда не случилось…
Аналогично, для 5.5, 5.6 не сработало.
Для runtime помогло руками выставить смещение относительно UTC:

SET time_zone = '+03:00';
От этого отказались, т.к. база переставала понимать правильно таймштампы дат ДО перехода. В итоге в ночи рестартанули :(
Да, не отработало. Пришлось сделать SET GLOBAL time_zone = '+03:00';
А что у вас не так? У нас все даты записанные с воскресенья отображаются правильно, а те, которые были записаны до 26.10, но на числа >26.10 отображаются на час меньше, т.е.:

2014-10-23 00:00:00
2014-10-26 23:00:00 (должно быть 2014-10-27 00:00:00)

Поидее в обоих случаях должна быть полночь.
Появилось 2014i, см. UPD3.
Сейчас проверял эту версию пакета на Ubuntu 12.04 в VirtualBox'е.
sudo apt-get update
sudo apt-get install --only-upgrade tzdata
sudo date --set «26 Oct 2014 01:59:55»

И в 2 ночи не откатывается время на час назад :(

P.S. Синхронизацию времени виртуалки с хостом выключил. Временная зона — «Europe/Moscow».
А нет, все работает верно.
Правильный способ проверки описан тут.
НЛО прилетело и опубликовало эту надпись здесь
Добавил UPD4
НЛО прилетело и опубликовало эту надпись здесь
Не знаю, как дефолтный, но если собирать под свои нужды самому — то можети не юзать.
Если собран с опцией --with-system-tzdata то использует системную, если нет — то нужен модуль timezonedb
Для Ubuntu Saucy 13.10 tzdata так и не обновили до 2014i так что решил проблему установкой вручную пакета из Ubuntu Trusty 14.04 вот так:
wget http://launchpadlibrarian.net/187931384/tzdata_2014i-0ubuntu0.14.04_all.deb
dpkg -i ./tzdata_2014i-0ubuntu0.14.04_all.deb
Мне кажется, что это всё — ненужные танцы, уж простите.
Проще жить по UTC, а танцы с переводом стрелок оставить энергетикам, железнодорожникам и лично Президенту.
Я тоже хочу в вашу страну розовых поней, где можно жить по UTC и не обращать внимание на изменения поясов. Там, наверное, здорово.
А вы не думали, что здесь сидят и те, кто админят сервера энергетиков и железнодорожников? Что точное время нужно для биржевиков, баннерных систем и онлайн игр?
А жить по UTC здорово, пока продукты вам покупают родители и админите вы свой локалхост. А вот как только пойдете в магазин по UTC, то узнаете, что когда в Лондоне 20 часов и магазин должен вроде работать в Мск уже 23 часа и магазин закрыт.
Вот и хочется ответить нечто вида «Мой локалхост в твою стойку не влезет, парниша» — не я начал оскорблять ).
Ну почему вроде бы умные люди так держатся за стандарт каких-то абсолютных поясов, когда мыслят все равно относительными («магазин закроется через два часа»), учитывают это в коде итд?

UTC — валидная опция для существования в качестве системы отсчета времени и указать на этот факт порой стоит. А то так и будут все раз в год делать абсолютно ненужные танцы с таймзонами.

P.S. Около дома 3 открытых 24/7 магазина, время в Лондоне стабильно известно — надо ж знать, чо там клиенты-биржевики, спят или не спят, ЧЯДНТ?

P.P.S. BREAKING NEWS: 24-часовой день и григорианский календарь — это условности того же порядка. Разница в том, что их не тюнят раз в год, а так, в 1918гг у вас тоже б неслабо бомбануло б при необходимости апдейтить tzdata на всех гроссбухах -_-
Я не оскорблял, просто ваши рассуждения очень напоминают рассуждения того, кто живет в выдуманном мире.
А я живу в реальном и, увы, вынужден с этим мирится.
Мне на серверах нужно только время по Москве и с большой точностью.
При этом я пытался, в свое время, убедить на переход на UTC, но не вышло. Реальная жизнь далека от идеала, увы.
По мне так пусть будет один часовой пояс на всю страну, как в Китае или на весь мир вообще, а считать будем в unix-time или в «звездных датах». Я-то поддержу. Но нас будет двое.
… но… но ведь UTC — это то, из чего потом округлением получается GMT и Москва GMT+realpolitik… странные они, эти человеки )
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории