如何使 nix 存储中的源存档失效

如何使 nix 存储中的源存档失效

我最终在我的 nix 商店中找到了错误的软件包来源。这发生在一段时间前,所以我无法追踪日志文件来弄清楚它是如何发生的。我尝试重建相同版本的包都会导致使用相同的错误源。有没有办法使源存档无效或强制重新获取?

我可以安装商店rw并删除存档,但似乎应该有一个不会颠覆 nixosro设计的解决方案。

答案1

nix-store --delete /nix/store/path如果您不通过某些参考保持路径处于活动状态,您总是可以这样做,但您应该注意一些细节。我假设您的来源是通过fetchurl或类似的固定输出推导获得的。这些指定输出的哈希值,并且您在 nix 存储中的路径与该哈希值匹配,因此它实际上是正确的源(考虑您对 nix 的要求)。

典型的简单路径是将散列覆盖fetchurl为一些不正确的值,例如用零替换一些字符,然后 nix 将尝试重新获取并打印结果(不匹配)散列,然后您可以更新该散列。还要nix-prefetch-url避免两次提取等。

相关内容