В настоящее время мы изучаем, может ли Nix быть подходящим инструментом для упаковки сторонних библиотек и инструментов, необходимых для создания нашего программного обеспечения. Отказ от ответственности: я только что узнал о Nix и все еще пытаюсь собрать все воедино.
Наш продукт должен быть ABI-совместимым с системами CentOS5. Вот почему мы создаем наше программное обеспечение в контейнере CentOS5 Docker с помощью специально созданного GCC и множества других сторонних инструментов и библиотек, созданных из исходных текстов.
В настоящее время у нас есть один большой Makefile для построения всех этих зависимостей, и мы используем задание CI для построения зависимостей. Каждый раз, когда изменяется одна из зависимостей или выполняется какое-либо изменение в Makefile, мы перестраиваем все зависимости, что занимает много времени.
Вместо того, чтобы улучшать Makefile, мы ищем более простые решения, которые легче поддерживать. Я думаю, что Nix может помочь нам справиться с этой проблемой, переведя Makefile на отдельные производные с правильными зависимостями, указанными для каждой производной. Подойдет ли Nix для этого варианта использования? Основная проблема, которую я вижу, заключается в том, что Nix использует современную библиотеку glibc в качестве базовой производной, от которой мы не можем зависеть. Нужно ли нам создавать собственную версию glibc, или мы можем как-то зависеть от glibc, установленной в хост-системе (CentOS5)?