Как правильно откатывать пакеты после неудачного обновления?
Вопрос к гуру, как "правильнее" всего откатывать пакеты после неудачного обновления.
Допустим ты обновил какой-то пакет из портов и после обновления обнаружил что что-то перестало работать. Твои действия?
Снести пакет и установить предыдущую версию :-) А вообще, можно фрю ставить на ZFS, и перед любыми сложными манипуляциями делать снапшот. Если что-то пошло не так -- просто откатывать снапшот.
На мой взгляд это как из пушки по воробьям (я про снапшоты).
А вообще, при обновлении спрашивает же сохранить предыдущую версию или нет. Стало быть потом ее (насколько я понял, обычный архив) стандартным способом можно и установить.
Откат снапшота на рабочей системе - автоматом потеря данных которые уже успели записаться. Например почтовик рабочий если после обновления откатить - то часть писем которые успели прийти пропадут.
Так же установить предыдущую версию - с помощью пакета portdowngrade?
Если да - то он ставит только выбранные пакет и зависимости не откатывает.
sbh: Давно я в свою фряху не залезал (работает - не трогай), но если мне не изменяет память, то тогда я пользовался portmaster'ом.
Восстанавливать предыдущую версию, к сожалению для вас, к счастью для меня, не было необходимости. Но то что возможность предоставлялась помню хорошо.
sbh: я писал не ответ, а комментарий к другому ответу, в котором просто упомянул что есть возможность. А уж воспользуетесь вы полученной информацией или нет это ваше право.
sbh: > Откат снапшота на рабочей системе - автоматом потеря данных которые уже успели записаться.
Ну, если у вас система не отделена от данных -- то кто ж вам виноват? :-) ZFS позволяет делать снапшоты на уровне датастора. Если система спроектирована по уму -- снапшотом можно только разделы самой системы покрыть, не трогая данные.
sbh: А, ну и да. На время проведения работ весь сервис с сервера должен быть снят. В случае почтового сервера -- либо остановлен приём почты, либо почта должна обрабатываться дублирующим сервером.
На самом деле т.к. фря работает под виртуалкой то сам использую снапшоты. Естественно это удобно но вот при откате обратно теряются данные и это неизбежно. На ней работает несколько систем и когда косякнула одна после обновления, то откатываешь все назад, например данные мониторинга естественно теряются. Вообще как по мне так снапшоты это не для продакшена.
sbh: По снапшотам: если диск 1, то снапшоты на уровне гипервизора, действительно приводят к потере новых данных. Но в случае использования ZFS вам никто не мешает для /var/mail например выделить отдельный раздел, для /etc - свой раздел, для /usr - свой раздел. Делайте снапшоты на уровне ZFS в /etc и /usr и данные останутся целы, т.к. они будут в /var. Или если не заморачиваться с ZFS, то для /var отдельный диск в гипервизоре.
Т.е. эти вещи надо продумывать когда вы только ставите систему. Это, кстати, касается не только фряхи.
sbh: В теории, имеет -- оно пакует старый пакет и сохраняет его. Если что -- можно отменить. Но мы предпочитали снапшотами пользоваться, это всяко надёжнее.
sbh: снапшоты гипервизора и снапшоты ZFS -- они на разных уровнях работают. Гипервизор может сделать снапшот на уровне виртуальной машины, и всё. В ZFS всё можно делать более тонко. При условии, конечно, что на этапе развёртывания всё было спроектировано должным образом.
Рекомендую вам внедрять в продакшн меры безопасности при проведении изменений. Как я уже писал выше -- на время работ с сервером снимать с него весь сервис, делать предварительно бэкапы, продумывать детально, как откатывать изменения и т. п.
В port-mgmt есть порт portdowngrade. Я с его помощью успешно пару раз откатывался в довольно сложных конфигурациях. После установки внимательно читайте ман, там все написано.
Про него знаю - почитайте комментарии в ветке выше. Спасибо за комментарий. Возможно еще какие-нибудь способы знаете? Интересует именно самый правильный метод отката.
sbh: Самый правильный - portdowngrade. Да, зависимости придется то же руками разруливать, но это лучше, чем потеря данных.
Кстати, обычно порты для зависимостей требуют версию не ниже какой-то, поэтому может и не придется бороться с ними, т.к. у вас они будут выше.
Другой вариант - собрать нужную версию порта руками, но, имхо, это коряво. Потом все обновления так же придется делать руками.