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