Как переопределить пакеты в Nix?

Nix использует концепцию «неподвижной точки» для переопределения пакетов, позволяя изменять их конфигурацию без прямого изменения исходного кода. Это достигается путем создания функции fix, которая рекурсивно вызывает сама себя, обеспечивая доступ к переопределенным параметрам внутри набора пакетов.
Как переопределить пакеты в Nix?
Изображение носит иллюстративный характер

config.packageOverrides — специальный атрибут, который позволяет применять переопределения к пакетам. Вместо непосредственного изменения пакета, создаётся его переопределённая версия, например, отключение поддержки X Window System в graphviz. Это обеспечивает возможность пересобрать только те пакеты, которые зависят от измененного, оставляя остальную часть системы нетронутой.

Переопределения пакетов выполняются в файле config.nix, который автоматически загружается при импорте nixpkgs. Это упрощает процесс и устраняет необходимость явной передачи параметров при каждом импорте. В config.nix задаются нужные переопределения, что приводит к пересборке только необходимых пакетов.

Использование переопределений гарантирует, что разные версии пакетов могут работать параллельно без конфликтов. Старые приложения продолжат использовать старые версии библиотек, а новые версии будут использовать новые, что сохраняет стабильность всей системы.


Новое на сайте

19734Может ли старый препарат для трансплантации отсрочить диабет 1 типа? 19733Викторина для любителей осьминогов: что вы знаете о головоногих? 19732Почти сто пусков за плечами, но Artemis II оказался чем-то совершенно другим 19731Как китайский смог оказался связан с арктическими штормами, а мыши избавились от диабета? 19730Почему аллергия передаётся по наследству не так просто, как кажется? 19729Веб-шеллы на PHP, управляемые через куки: как злоумышленники закрепляются на серверах... 19728Как учёным впервые удалось составить полную карту нервов клитора? 19727Homo habilis: самый древний «человек», который, возможно, им не является 19726Как северокорейские хакеры взломали одну из самых популярных библиотек JavaScript 19725Почему риски от подрядчиков стали главной дырой в кибербезопасности 19724Как выживший во второй мировой придумал нападение гигантского кальмара 19723Что если вселенная никогда не начиналась с точки бесконечной плотности? 19722Доживёт ли комета MAPS до субботы? 19721Квантовый процессор IBM побил сразу два рекорда — что это меняет? 19720Как северная Корея похитила $285 миллионов у Drift через предподписанные транзакции?
Ссылка