在学习如何使用 Nix 包管理器时遇到的第一种 Nix 表达式是default.nix
;在精彩的 NixOS IRC 频道上,我了解到shell.nix
and的存在release.nix
。
我的印象是 - 粗略地 -default.nix
用于nix-build
简单地构建包,shell.nix
用于nix-shell
创建与包的交互环境,并release.nix
用于nixops
部署包。
由于这可能不完整且部分不正确,并且似乎没有明确记录,因此我想对这些“标准文件”进行清晰准确的解释;特别是,对于这些文件类型中的每一个(以及我缺少的任何其他标准文件),我想知道:
- 这种文件的典型用例是什么?它们不应该用于什么?
- 这种文件类型的结构通常如何?它的最低要求是什么?
- 您能否在其使用上下文中展示此类文件的范例示例,即使用说明并包括在 shell 或其他 Nix 表达式中使用它所需的代码行?
作为一个额外的奖励问题,我想知道在将软件包安装到 NixOS 模块时应该使用这些标准文件中的哪些(如果有的话)?那怎么做?