Назад | Перейти на главную страницу

безопасный откат обновлений

Я снова и снова задаюсь вопросом, почему нет (или я просто не нашел его?) Какого-либо инструмента, который мог бы надежно и легко откатить изменения, сделанные обновлениями. В качестве примера позвольте мне взять обновление с apt на Debian. Вот этот новый пакет и есть зависимости от него. В каждом пакете есть список файлов, которые будут созданы / изменены / удалены. Кроме того, другие файлы могут быть изменены с помощью сценариев конфигурации.

Мое исследование по этой теме показало strace как возможное лучшее решение. С помощью strace можно отслеживать системные вызовы одного процесса (предположим, apt-get), и можно отфильтровать системные вызовы, которые имеют отношение к тому, что я ищу.

Имея этот список, можно было бы надежно откатить обновление с помощью одной команды. Возможно, даже можно добавить какой-то перехватчик к измененному исполняемому файлу strace, который запускает резервное копирование каждого файла непосредственно перед его изменением.

Мои предположения верны? Если да, существует ли такой инструмент?

Пакеты не обязательно существуют в вакууме - возьмем пример обновления пакета базы данных и его преобразования файлов данных в новый формат при запуске. Во время процесса обновления пакета это не фиксируется.

Самый последовательный метод отката, который вы найдете, - это моментальный снимок и откат всей системы (привязка виртуальной машины или файловой системы с поддержкой моментальных снимков), и даже это не является пуленепробиваемым - обновление пакета в одной системе потенциально может повлиять на другие узлы. в сети.