Ssylka

Основы Nix: центральная роль stdenv в сборке пакетов

stdenv в Nix – это пакет и ключевой элемент для сборки всех остальных пакетов в nixpkgs. Он предоставляет базовое окружение с необходимыми инструментами: GCC, make, coreutils и другие. stdenv представляет собой деривацию, которая в результате содержит файл /setup, определяющий среду сборки.
Основы Nix: центральная роль stdenv в сборке пакетов
Изображение носит иллюстративный характер

setup – это bash-скрипт, который инициализирует переменные окружения, такие как PATH, и предоставляет функции для сборки пакетов по фазам: распаковка, конфигурирование, сборка, тестирование, установка, фиксация. Фазы можно переопределять, настраивать хуки до и после их выполнения.

Для упрощения процесса сборки пакетов в nixpkgs используется функция stdenv.mkDerivation. Она принимает параметры пакета, в том числе исходный код и зависимости, добавляет переменную окружения $stdenv, а также вызывает сценарий default-builder.sh, который, в свою очередь, запускает setup и genericBuild.

В процессе сборки nix-build вызывает bash, который запускает default-builder.sh. Тот в свою очередь запускает setup и функцию genericBuild, которая последовательно проходит все фазы сборки, определенные в setup. Ключевые переменные окружения, такие как src (путь к исходникам) и stdenv (путь к окружению сборки) задаются в описании деривации.


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

18666Почему мы отрицаем реальность, когда искусственный интеллект уже лишил нас когнитивного... 18665Химический след Тейи раскрыл тайну происхождения луны в ранней солнечной системе 18664Раскрывает ли извергающаяся межзвездная комета 3I/ATLAS химические тайны древней... 18663Масштабная кампания ShadyPanda заразила миллионы браузеров через официальные обновления 18662Как помидорные бои и персонажи Pixar помогают лидерам превратить корпоративную культуру 18661Как астероид 2024 YR4 стал первой исторической проверкой системы планетарной защиты и... 18660Агентные ИИ-браузеры как троянский конь новой эры кибербезопасности 18659Многовековая история изучения приливов от античных гипотез до синтеза Исаака Ньютона 18658Как выглядела защита от солнца римских легионеров в Египте 1600 лет назад? 18657Хакеры ToddyCat обновили арсенал для тотального взлома Outlook и Microsoft 365 18656Асимметрия безопасности: почему многомиллионные вложения в инструменты детекции не... 18655Как безопасно использовать репозитории Chocolatey и Winget, не подвергая инфраструктуру... 18654Масштабная утечка конфиденциальных данных через популярные онлайн-форматеры кода 18653Как расширение списка жертв взлома Gainsight связано с запуском вымогателя ShinySp1d3r 18652Как расширение Crypto Copilot незаметно похищает средства пользователей Solana на...