Один из первых типов выражения Nix, встречающийся при обучении использованию диспетчера пакетов Nix, - default.nix
; на замечательном канале IRC NixOS я узнал о существовании shell.nix
и release.nix
.
У меня сложилось впечатление, что грубо - default.nix
следует использовать с nix-build
для простого построения пакета, shell.nix
используется с nix-shell
для создания интерактивной среды с пакетом, а release.nix
- используется с nixops
при развертывании пакета.
Так как это, вероятно, неполное и частично неверное, и поскольку это, как представляется, не является четко документированным, я хотел бы получить четкое и точное объяснение этих типов "стандартных файлов"; в частности, для каждого из этих типов файлов (а также любых других стандартных файлов, которые мне не хватает), я хотел бы знать:
- Каковы типичные варианты использования такого файла? Для чего они не должны использоваться?
- Как обычно этот тип файла структурирован? Каковы минимальные требования для этого?
- Не могли бы вы показать пример парадигмы такого файла в контексте его использования, т.е. с инструкциями использования и включая строки кода, необходимые для использования в оболочке или другом выражении Nix?
В качестве дополнительного вопроса о бонусе, я хочу знать, какие из этих стандартных файлов, если таковые имеются, следует использовать при установке пакета в модуль NixOS? Как это будет сделано?