[devel] %post considered harmful

Aleksandr Shamaraev shad на altlinux.org
Пн Май 4 16:22:41 MSK 2026


On Mon, May 04, 2026 at 12:29:13PM +0300, Aleksandr Shamaraev wrote:
> Доброго дня всем.
> 
> <...>
> 
> %post
> <...>
> 
> ...перестал выполняться скрипт.
> 
> Сказать по правде для пакета alt-mirror-switcher ( 
> https://packages.altlinux.org/ru/sisyphus/srpms/alt-mirror-switcher/specfiles/
> ) это критично, так как если используются какие нибудь дополнительные
> зеркала, то они могут быть сброшены во время обновления и обновление, 
> как
> таковое, сломается из-за отсутствия источников.
Но как? К моменту установки нового пакета alt-mirror-switcher и запуска
его %post вся транзакция уже определена, а входящие в неё пакеты
выкачаны.

Прошу прощения, я видать не полностью выразил свою мысль.

Сама транзакция обновления пройдет, но допустим если будет дальше идти 
update-kernel вот тут будет проблема, также она будет если повторно 
запустить к примеру apt-get update

Данная ситуация может возникнуть только в случае, если меняется пакет 
содержащий зеркала, то есть к примеру дополнительный пакет зеркал 
alt-mirror-switcher-lists-sisyphus идет с заремаренными по умолчанию 
значениями (выкл), если изначально пользователь использует что-то из 
этих зеркал, после обновления они сбросятся, следовательно на вторую 
транзакцию apt-get не будет знать где смотреть.

Собственно столкнувшись ранее с этой проблемой, я добавил конфиг файл, в 
который gui версия пишет, что выбрал пользователь, и при запуске 
переключателя после обновления он сам все восстановит как было, если это 
нужно, а вот для восстановления того, что было, во время обновления, 
собственно и использовался %post , чтоб тот же update-kernel прошел без 
проблем следом.

Пока я подумываю скрипт ams_check.py переписать на баш или perl, дабы 
решить эту проблему.

С уважением, Александр



Подробная информация о списке рассылки Devel