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

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

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам