堆栈构建而不将输出存储在 nix 存储中?
Stack build without storing output in nix store?
我已经 运行 stack build
多次处理一个项目 - 每次似乎都将结果保存在 /nix/store
中,随着时间的推移需要大量存储空间。
有什么方法可以不将结果保存到商店?
不,你不能"not save the result to the store"。 (你可以指定一个 different 存储,但这会使你的问题变得更糟——你将在这个存储中存储你的依赖链的额外副本,而且,你会无法下载由 Nix 的自动上游构建系统 Hydra 构建的部分依赖链的预构建二进制文件。
你应该做的是对你的商店进行垃圾收集,这将删除不再使用的项目(根据活动 "gc root" 的可达性衡量 - - 例如由构建过程创建的 result
link,主动 运行 的程序,或安装在用户配置文件中 nix-env
的软件集)。
这可以很简单:
nix-store --gc
...或者,如果你有一个特定的项目吃掉了 space 你想删除:
# delete all instances of whatever, if-and-only-if they aren't reachable from a gc root
nix-store --delete /nix/store/*-whatever
我已经 运行 stack build
多次处理一个项目 - 每次似乎都将结果保存在 /nix/store
中,随着时间的推移需要大量存储空间。
有什么方法可以不将结果保存到商店?
不,你不能"not save the result to the store"。 (你可以指定一个 different 存储,但这会使你的问题变得更糟——你将在这个存储中存储你的依赖链的额外副本,而且,你会无法下载由 Nix 的自动上游构建系统 Hydra 构建的部分依赖链的预构建二进制文件。
你应该做的是对你的商店进行垃圾收集,这将删除不再使用的项目(根据活动 "gc root" 的可达性衡量 - - 例如由构建过程创建的 result
link,主动 运行 的程序,或安装在用户配置文件中 nix-env
的软件集)。
这可以很简单:
nix-store --gc
...或者,如果你有一个特定的项目吃掉了 space 你想删除:
# delete all instances of whatever, if-and-only-if they aren't reachable from a gc root
nix-store --delete /nix/store/*-whatever