Nix использует концепцию «неподвижной точки» для переопределения пакетов, позволяя изменять их конфигурацию без прямого изменения исходного кода. Это достигается путем создания функции
Переопределения пакетов выполняются в файле
Использование переопределений гарантирует, что разные версии пакетов могут работать параллельно без конфликтов. Старые приложения продолжат использовать старые версии библиотек, а новые версии будут использовать новые, что сохраняет стабильность всей системы.
fix
, которая рекурсивно вызывает сама себя, обеспечивая доступ к переопределенным параметрам внутри набора пакетов. Изображение носит иллюстративный характер
config.packageOverrides
— специальный атрибут, который позволяет применять переопределения к пакетам. Вместо непосредственного изменения пакета, создаётся его переопределённая версия, например, отключение поддержки X Window System в graphviz
. Это обеспечивает возможность пересобрать только те пакеты, которые зависят от измененного, оставляя остальную часть системы нетронутой. Переопределения пакетов выполняются в файле
config.nix
, который автоматически загружается при импорте nixpkgs
. Это упрощает процесс и устраняет необходимость явной передачи параметров при каждом импорте. В config.nix
задаются нужные переопределения, что приводит к пересборке только необходимых пакетов. Использование переопределений гарантирует, что разные версии пакетов могут работать параллельно без конфликтов. Старые приложения продолжат использовать старые версии библиотек, а новые версии будут использовать новые, что сохраняет стабильность всей системы.