Перехожу обратно на OpenBSD-current

Опубликовано 01.03.2024 в OpenBSD

Операционная система OpenBSD распространяется в трех вариантах (пинд. рас. "flavour") - ветка release являет собой, собственно, регулярные релизы системы, выходящие дважды в год (осенью и весной, сейчас актуальна версия 7.4, версия 7.5 выйдет примерно к маю), причем никакие изменения от релиза к релизу не вносятся, release - это именно то, что актуально на момент его публикации.

Далее, существует ветка stable - это релизная ветка, в которую вносятся изменения, исправляющие те или иные проблемы с безопасностью (для их скачивания и установки существует утилита syspatch). Кроме того, в стабильную ветку бэкпортируются некоторые наиболее важные изменения софта или базовой системы - например, регулярно обновляются верси некоторых приложений, вроде веб-браузера Firefox. Но не стоит ожидать регулярных обновлений всей пакетной базы. Важно также иметь в виду, что и патчи безопасности, и обновления софта выпускаются только для двух последних версий системы (текущей и предыдущей), обновляться таки надо если не раз в полгода, то хотя бы с отставанием на одну релизную версию.

И, наконец, существует ветка current - это прям bleeding edge разработки OpenBSD, версия с наиболее актуальным и передовым состоянием как базовой системы, так и пакетной базы. Чтобы "сидеть на карренте" нужно время от времени выполнять скачивание и установку нового снапшота системы (для этого используется системная утилита sysupgrade - та же, что позволяет устанавливать новые релизы, запуск ее с ключиком -s позволяет скачать и установить свежий снапшот. А дальнейшее поведение sysupgrade зависит от того, на stable или current ветке вы сейчас находитесь - в первом случае утилита попытается скачать следующий релиз, а не найдя такового отрапортует об ошибке, а во втором - она выкачает последний снапшот и обновится на него.

Тут важны некоторые нюансы: во-первых, sysupgrade устанавливает новую версию без дополнительных подтверждений, скачали дистрибутив, скачали обновления прошивок для оборудования (это тоже происходит автоматически) - и система молча пошла в ребут и автоматическую установку, спешите сохраниться заранее! Во-вторых, существует мнение, что единожды перейдя на current, откатиться обратно на релизную ветку ты не сможешь без полной переустановки системы с нуля. И мнение это глубоко ошибочно, я лично делал это пару раз - тут важно лишь подгадать момент, об этом ниже. Ну и, наконец, current есть current - это ветка для рарзаботки и тестрования, стабильности там никто никому не гарантирует и иногда там приключатся ломающие изменения, о которых иногда могут предупреждать заранее в официальных почтовых рассылках, но могут и не предупреждать...

Собственно, наиболее популярным вопросом на всяческих профильных ресурсах про OpenBSD является "насколько подходит current для... на какой ветке лучше сидеть... часто ли ломается...". И вот как тут дать универсальный ответ? Официальный FAQ рекомендует новичкам использовать release или stable, а current рекомендует опытным пользователям. Но нужно же составить собственное, проверенное личным опытом мнение?

И я таки его составил. Я использовал ветку current на протяжении достаточно долгого времени и убедился, что да, обновления снапшотов иногда приносят некоторые проблемы, софт в портах и пакетах тоже иногда может рассинхронизироваться в части зависимостей, но обычно эти ситуации выявляются и разрешаются разработчиками достаточно быстро и лечатся просто очередным обновлением. "Окирпичивания" я на current не получал ни разу.

Тем не менее, подгадав момент, когда очередной снапшот был наиболее близок к следующему релизу (7.4) я переключился на stable-ветку 7.4 (вручную скачав релизный образ, загрузившись с него, и обновив софт с измененным соответствующим образом PKG_PATH) - и около полугода сидел на stable-ветке. Пй личный опыт таков: существенной разницы в стабильности по сравнению с current я не заметил - да, обновлений базовой системы, приносящих проблемы, нет по определению, но те самые "наиболее важные обновления софта" нет-нет да и приносят нестабильность. Например, одно из регулярных обновлений Firefox привело у меня к тому, что он стал крешиться время от времени при невыясненных обстоятельствах - а позднее это прошло само собой при установке очередного апдейта. Вместе с тем, в stable-ветке некоторый достаточно важный мне софт присутствует в весьма дремучих версиях, обновления которых ждать не приходится до следующего релиза - хорошим примером является Telegram, у которого произошли ломающие изменения в протоколах, старые версии утратили частично совместимость - не всегда могут корретно отобразить цитаты - но в OpenBSD 7.4 апнуть версию Telegram никто не удосужился и ты регулярно видишь вместо цитат "... не поддерживаетс вашей версией...". Ну и некоторый иной софт старенький... Да, конечно, можно собрать нужное и вручную, но...

Но я не увидел в конце концов для себя каких-то существенных плюсов в использовании именно stable-ветки. И вот сегодня, в связи с наступлением весны, обновился (вот прямо сейчас обновляюсь, точнее) до current, на коем и планирую остаться.

P.S. Тем временем, солнцеликий Тео уже объявил предрелизное тестирование OpenBSD 7.5, соответственно, мне некоторое время (собственно, до релиза) придется обновлять пакеты, добавляя при вызове pkg_add ключик -D snap и новые снапшоты качать взывая sysupgrade с ключом -s, такова уж специфика релизного цикла OpenBSD.