Какое активное выражение Nix?

Я заметил, что описания различных команд nixos относятся к так называемому «активному выражению Nix». Например, страница руководства для nix-env включает:

   --file / -f path
       Specifies the Nix expression (designated below as the active Nix expression) used by the --install, --upgrade, and --query
       --available operations to obtain derivations. The default is ~/.nix-defexpr.

Что это за «активное выражение Nix»? Где это определяется? Это просто то, что написано в /etc/nixos/configuration.nix обычно, или вместо этого то, что было определено nix-shell в противном случае?


person mherzl    schedule 12.07.2019    source источник
comment
nix иnixos (помечено), безусловно, программные инструменты, обычно используемые программистами, не так ли? stackoverflow.com/help/on-topic   -  person mherzl    schedule 12.07.2019
comment
@KenWhite, Nix - язык программирования (язык, на котором написаны производные от Nix, разрешено). Я не уверен в этом конкретном вопросе, поскольку он сосредоточен на инструментах командной строки, а не на языке программирования - по этой причине он находится на более шаткой почве, чем большинство других, - но в целом я Назвал бы здесь актуальные вопросы о Никсе.   -  person Charles Duffy    schedule 12.07.2019
comment
@mherzl, быть программным инструментом, обычно используемым программистами, недостаточно; что-то также должно быть уникальным для разработки программного обеспечения; см. и (не или!), соединяющие пункты списка 3 и 4 на странице, на которую вы указали. Если системный администратор или конечный пользователь будет использовать один и тот же инструмент - если он не является уникальным для разработки программного обеспечения - то он не входит в компетенцию Stack Overflow.   -  person Charles Duffy    schedule 12.07.2019
comment
@CharlesDuffy: У меня вообще нет проблем с темой Nix. Мой вопрос касался того, что этот конкретный вопрос связан с программированием. Однако я удалил комментарий.   -  person Ken White    schedule 12.07.2019
comment
@KenWhite, ... как вы можете видеть выше, я согласен с вами, что этот вопрос находится не совсем точно в четырех углах темы, поэтому он определенно открыт для суждения / интерпретации, где провести черту.   -  person Charles Duffy    schedule 12.07.2019
comment
@CharlesDuffy: Согласен, поэтому в первую очередь я попросил автора объяснить.   -  person Ken White    schedule 12.07.2019


Ответы (1)


Это файл, из которого вычисляется выражение Nix, в котором оценивается любой атрибут, указанный с помощью -A. (При отсутствии -A предполагается, что этот контент напрямую является производным).

Допустим, у вас есть файл mydir/default.nix, который оценивает набор атрибутов с ключами foo, bar и baz, каждый из которых сопоставляется с производным как значение.

В этом случае запуск nix-env -f mydir -iA foo загрузит mydir/default.nix, оценит foo в контексте этого загруженного кода, выполнит все связанные шаги сборки и добавит это программное обеспечение в вашу активную среду.

person Charles Duffy    schedule 12.07.2019