>>Вот с откатом действий, производимых пакетными скриптами, может быть полный нетривиал.
>>В смысле чтение их глазами да соображание, что было и что стало
>в этом и заключается основная проблема.Вопрос, как обычно -- в том, какая именно проблема стоит и сколько готовности её решать.
>Как быть если я хочу поставить несколько пакетов в одной "транзакции"?
См. выше, тут это выходит в основном к apt и отчасти к rpm (насчёт пересечений).
>при обломе я хочу откатиться на состояние до начала установки/апгрейда..
Облом бывает разноплановый: одно дело откатить версии пакетов (это элементарно), другое -- например, "провернуть назад" фарш обновлённой базы данных после пинка в ребилдилку из постустановочного скрипта. Или вот ещё один из частных примеров: https://bugzilla.altlinux.org/show_bug.cgi?id=14917 (rpm умеет после транзакции выполнить предварительно заданный код -- например, перестройку собственной базы; это и имелось в виду под post mortem).
Бишь задача поиска обратной функции к произвольной (а именно к ней сводится вопрос отката действий скриптов) -- боюсь, нерешаемая "в лоб".
В более-менее общем случае при условии пренебрежимости в разнице по остальному находящемуся на той же ФС состоянию[*]... наверное, я бы копал в сторону XFS/LVM snapshots.
* бишь пользователи или там базы могут и должны жить на других ФС, нежели пакетное ПО,
если уж актуальна такая точность/гарантированность отката состояния
Но до сих пор хватало даже не аптовых pin'ов, а rpm -Uvh --oldpackage, благо случаи редки и происходят там, где и ожидаются (в основном unstable на буке).
Кстати, на практике с этим тоже контейнеры помогают: делаешь клон, изучаешь процесс в деталях, но без риска уронить production, и если всё устраивает -- можно перекинуть адреса и оставить старую VE-шку в качестве бэкапа, пока пыль точно не осядет.