本地目录作为Nix二进制缓存

时间:2018-08-10 16:56:48

标签: nix

许多CI提供程序都为您提供了一个目录,该目录的内容在各个版本之间保留,您可以将其用作缓存。存储在其他位置的所有内容都会丢失。这意味着放置在nix存储区(/nix/store)中的nix构建期间创建的任何伪像都将丢失。我试图弄清楚如何说服nix在全局/nix/store上偏爱其他缓存目录。但是,文档有点缺乏。

到目前为止,我已经尝试过:

  • file:///the/path添加到替代者,然后nix copy --to进行替换。但是我发现nix仅在该目录中创建一些元数据文件,并将实际派生文件复制到/nix/store中。那不是我想要的。
  • 使用local?root=/the/path代替file:// url(顺便说一句,此语法在任何地方都没有记录,我只在一个github问题中找到了它!)。这使nix将整个派生文件复制到该文件夹​​,但是我无法弄清楚如何说服nix-build在构建过程中实际咨询该商店。

1 个答案:

答案 0 :(得分:0)

是否可以像nix run --store ~/my-nix nixpkgs.hello -c hello --greeting 'Hi everybody!'那样使用某些东西? installation guide指向--store在这种用例中的用法,以及手册中的某些部分:12

可以在nix run的{​​{3}}中找到一个示例。

还有可能有用的环境变量NIX_STORE_DIR?它记录在nix-shell --help中。

Nix存储库中还有几个问题,这里是tests