Я работаю с системой, которая требует высокого уровня точности для времени / часовых поясов.
Если посмотреть на пакет tzdata
, то иногда он обновляется через несколько дней после обновления файла базы данных IANA .
Проверка источника tzdata
, загрузка и извлечение базы данных из IANA и переупаковка - это достаточно просто.
Однако я хочу переопределить пакет только до тех пор, пока не было официального обновления. Как только появится официальное обновление tzdata
из репозиториев, я бы хотел, чтобы оно вернулось к нему.
Как лучше всего этого добиться?
Вам необходимо использовать номер версии, который сортируется до того номера версии, который в конечном итоге будет использовать упакованный выпуск. Канонический способ сделать это для локального выпуска - использовать суффикс ~, поскольку он сортируется раньше всего (и поэтому считается более старым): поэтому для 2017a вы должны использовать номер версии 2017a ~ -0.1 (-0.1, потому что это неофициальный пакет нового релиза). Он сортируется после текущего выпуска:
$ dpkg --compare-versions 2016j-0ubuntu0.16.04 lt 2017a~-0.1
$ echo $?
0
, поэтому он будет выбран в качестве кандидата на обновление, и он сортируется перед следующим выпуском:
$ dpkg --compare-versions 2017a~-0.1 lt 2017a-0ubuntu0.16.04
$ echo $?
0
, так что следующий официальный выпуск заменит его.
Эта схема работает независимо от источника следующего обновления tzdata
(Debian или Ubuntu).
Раздел политики Debian по версиям содержит все подробности.
Вы захотите проверить Закрепление версии
Вот еще один вопрос, связанный с этим
Это будет сложно использовать закрепление для временной блокировки до основной версии.
Вы можете использовать apt hold, чтобы пакет не обновлялся, поэтому вы можете добавить удержание, используя sudo apt-mark hold tzdata
, чтобы удерживать пакет в его текущей версии, пока вы не узнаете, что вы обновили хотите, затем снимите с удержания, используя sudo apt-mark, снимите удержание tzdata
и обновите