【发布时间】:2019-03-31 17:52:00
【问题描述】:
我在一个项目上多次运行stack build - 每次似乎都将结果保存在/nix/store 中,随着时间的推移需要大量存储空间。
有没有办法不能将结果保存到商店?
【问题讨论】:
标签: haskell-stack nix
我在一个项目上多次运行stack build - 每次似乎都将结果保存在/nix/store 中,随着时间的推移需要大量存储空间。
有没有办法不能将结果保存到商店?
【问题讨论】:
标签: haskell-stack nix
不,您不能“不将结果保存到商店”。 (您可以指定一个不同的商店,但这会使您的问题变得更糟——您将在此商店中存储一个额外的依赖链副本,而且您将无法下载由 Nix 的自动化上游构建系统 Hydra 构建的部分依赖链的预构建二进制文件。
你应该做的是垃圾收集你的商店,这将删除不再使用的项目(通过活动“gc root”的可达性来衡量 - 例如@987654321 @由构建过程创建的链接、正在运行的程序或安装在用户配置文件中的软件集nix-env)。
这可以很简单:
nix-store --gc
...或者,如果您有一个特定的项目占用了您想要移除的空间:
# delete all instances of whatever, if-and-only-if they aren't reachable from a gc root
nix-store --delete /nix/store/*-whatever
【讨论】:
nix-diff、nix-copy-closure 等工具将无法使用)