许多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
在构建过程中实际咨询该商店。答案 0 :(得分:0)
是否可以像nix run --store ~/my-nix nixpkgs.hello -c hello --greeting 'Hi everybody!'
那样使用某些东西? installation guide指向--store
在这种用例中的用法,以及手册中的某些部分:1,2。
可以在nix run
的{{3}}中找到一个示例。
还有可能有用的环境变量NIX_STORE_DIR
?它记录在nix-shell --help
中。
Nix存储库中还有几个问题,这里是tests。