Безопасный откат обновлений
Я снова и снова задаюсь вопросом, почему нет (или я просто не нашел его?) Какого-либо инструмента, который может надежно и без усилий откатить изменения, сделанные обновлениями. Позвольте мне взять обновление с apt для Debian в качестве примера. Там есть этот новый пакет и есть зависимости, которые у него есть. Каждый пакет имеет список файлов, которые будут созданы / изменены / удалены. Кроме того, другие файлы могут быть изменены скриптами конфигурации.
Мои исследования на эту тему позволили мне найти лучшее решение. С помощью strace можно отслеживать системные вызовы одного процесса (предположим, apt-get) и отфильтровывать системные вызовы, которые имеют отношение к тому, что я ищу.
Имея этот список, можно было бы надежно откатить обновление с помощью одной команды. Возможно, даже возможно добавить какой-то хук к измененному исполняемому файлу strace, который запускает резервное копирование каждого файла непосредственно перед его изменением.
Верны ли мои предположения? Если да, существует ли такой инструмент?
1 ответ
Пакеты не обязательно существуют в вакууме - возьмите пример обновления пакета базы данных и его преобразования файлов данных в новый формат при запуске. Там нет захвата этого в процессе обновления пакета.
Наиболее последовательный метод отката, который вы найдете, - это моментальный снимок и откат всей системы (оснастка виртуальной машины или файловая система с поддержкой моментальных снимков), и даже это не является пуленепробиваемым - обновление пакета в одной системе может потенциально повлиять на другие узлы. в сети.