【问题标题】:Nix how to use alternative store path for CI cachingNix 如何使用替代存储路径进行 CI 缓存
【发布时间】:2018-08-10 16:56:48
【问题描述】:

许多 CI 提供程序为您提供了一个目录,其内容在构建中保留,您可以将其用作缓存。存储在其他地方的所有内容都会丢失。这意味着在 nix 构建期间创建的任何放置在 nix 存储 (/nix/store) 中的人工制品都将丢失。我试图弄清楚如何说服 nix 更喜欢其他缓存目录而不是全局 /nix/store。但是文档有点缺乏。

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

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

【问题讨论】:

    标签: nix


    【解决方案1】:

    是否可以使用类似于nix run --store ~/my-nix nixpkgs.hello -c hello --greeting 'Hi everybody!' 的东西? installation guide 指向 --store 用于此类用例,以及手册中的某些部分:12

    这方面的一个例子可以在nix runtests中找到。

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

    Nix 存储库中还有几个问题,这里是 an interesting discussion

    【讨论】:

      猜你喜欢
      • 2017-10-06
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 2013-09-26
      • 2014-03-13
      • 1970-01-01
      相关资源
      最近更新 更多