Nix:目录的字符串插值出现问题

主要观点:作者在 NixOS Matrix 频道帮助他人解决推导连续重建问题时,发现一个关于目录字符串插值导致的问题。
关键信息:

  • 在 Nix 代码中,scriptBinDir使用writeShellApplication,但这不是导致问题的原因。
  • 问题的根本在于目录的字符串插值"${dirPath}/${name}",会导致相同文件有不同的存储路径。
  • 即使文件内容不变,仅目录变化也会导致推导重建。
  • 许多推导使用src属性设置为整个目录,这种方式容易导致问题。
    重要细节:
  • 给出了具体的 Nix 代码示例,如let scriptDir =... in...{pkgs? import <nixpkgs> {}}: let a =...; b =... in...,展示了问题的表现。
  • 展示了添加新文件后存储路径的变化,如/nix/store/f8m4h9wbpr05g4dja91xshh9l48a6ac0/nix/store/0m5j5lphpi2jsd6xi2fjwn1zqfmxy2hj
  • 提到可以通过Improve this page @ 3ff1206改进页面,且内容遵循CC-BY-SA
阅读 8
0 条评论