make (and/or its versions) plus «paco» on Linux == the full solution.
Пакеты когда-то были способами обособить distributions и подражать
миру коммерческих ОС. В этом их ОГРОМНЫЙ вред: пользователь
полностью не знает, что внутри этих кем-то созданных executables,
туда можно подсунуть что угодно (несмотря на криптосуммы, ибо
они подписаны постфактум, и ваша вера в создателя пакета обязана
быть абсолютной).
Все distros ввели собственные скрипты и методы компиляции, т.е.
открытая программа как она есть НЕ становится «пакетом», она
обязана быть модифицирована.
Первым преступление совершил RedHat с его rpm-ами, которые
модифицировали cpio так, чтобы его перестала читать сама cpio.
Нас «успокоили» тем, что сам rpm тоже открытая как бы программа -
и проложили прокладку.
Единственно верный подход к package management - никогда не
использовать ничего кроме стандартных инструментов (e.g. tar.gz),
и только подкладывать информационные текстовые файлы (с
зависимостями, версиями и т.д.) внутрь tar-архива. Можно на худой
конец и cpio, и сжимать xz-м, bz-ом и т.д.
Тогда любая стандартная GNU программа компилируется как она есть.
А для учета и контроля что куда когда и как было установлено на машину,
должен быть отдельный менеджер - и идеальное решение было создано
для distro, которое делалось с 0ля (from scratch) — это «paco».
Он ловит обращения к libc calls, system calls - и подменяет их через
LD_PRELOAD механизм. Таким образом после стандартной компиляции
make install превращается в
«paco -lD --ignore-erors — make install» — и ваш пакет учтен, все файлы и
их места зафиксированы, размеры посчитаны — и из этой установки можно
тут же сгенерировать tar.gz для повторной установки на любых других машинах.
Множество менеджеров пакетов, отказ от компиляции непавленных исходников,
и перевод пользователей на центральные depositories, которым вы обязаны верить
- часть той войны за захват открытого программирования, которая сегодня ведется
повсеместно (вспомните хотя бы подрыв Линукса с помощью systemd), и которая
открытые системы постепенно побеждает, делая их кальками коммерческих ОС
и механизмов слежки и отбора самостоятельности, которые они жёстко внедряют.
------------
P.S. Все, абсолютно все postinstall scripts создатели distros обязаны делать на
стандартной shell (e.g. bash), и собирать их в маленький Makefile.
Сказав «make» без аргументов получим перечисление возможных команд
(i.e. make targets), и затем говорим то, что нам надо в случае пакета.
//очевидно, что этот подход универсален и может использоваться как
для модулей языков, так и для отдельных программ в ОС//
Современная мерзость - особенно мерзость «rolling distributions» - непереносима.
P.P.S Современные системы configuration management - мерзость и непереносимы.
Они ПЕРЕПИСЫВАЮТ внутри себя кучу уже существующих shell utilities, make и т.д. -
и вместо полной гибкости и стандартных инструментов предлагают учить новый
внутренний их язык, на котором можно сделать лишь то, что вам написали авторы.
Необходима современная открытая configuration and package management system,
основанная на paco, make, и системе контроля версий.