手动编写 Nix 派生,无需猜测

主要观点:作者因一篇优秀博客文章进行了低级别 Nix 冒险,尝试手动生成 Nix 派生的哈希值,介绍了 Nix 派生的概念、相关术语及手动生成哈希值的步骤,包括获取 ATerm 形式的派生、计算内部指纹和摘要、进行一系列哈希处理及转换为 Nix 特定的 base32 编码等,最终成功构建并运行派生得到预期输出。
关键信息

  • Nix 派生是构建文件的精确配方,类似 Make 配方或 shell 脚本,输入和输出都指向特定路径。
  • 手动生成哈希值需先获取 ATerm 形式的派生,计算内部指纹和摘要,再进行特定哈希处理和编码转换。
  • 文档中关于 base32 和哈希处理的部分存在误导,需注意 Nix 使用的特殊字符集和处理方式。
    重要细节
  • 示例 JSON 派生结构及与 Make 配方的对应关系。
  • 在 Docker 中进行探索,通过特定命令构建和运行 Nix 容器。
  • 具体的 Python 代码实现用于计算哈希值和进行相关处理。
  • 最终成功构建派生并得到预期输出“hello world”。
阅读 4
0 条评论