Сборка стека без сохранения вывода в магазине nix? - PullRequest
0 голосов
/ 31 марта 2019

Я запускал stack build в проекте несколько раз - и каждый раз, когда кажется, что результат сохраняется в /nix/store, который требует много памяти с течением времени.

Есть ли способ, которым я НЕ могу сохранить результат в магазине?

1 Ответ

1 голос
/ 31 марта 2019

Нет, вы не можете "не сохранить результат в магазине".(Вы можете указать другое хранилище, но это усугубит вашу проблему - вы будете хранить дополнительную копию вашей цепочки зависимостей в этом магазине, и, кроме того, вы не сможете загрузить предварительно собранныйбинарные файлы для частей вашей цепочки зависимостей, которые собраны с помощью автоматизированной восходящей системы сборки Nix, Hydra).

Что вы должны сделать, так это собрать мусор в вашем магазине, который удалит элементы, которые не являютсядольше в использовании (измеряется достижимостью от активного «корня gc» - такой как ссылка result, созданная процессом сборки, программы, которые активно работают, или набор программного обеспечения, установленного в профиле пользователя с помощью 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
...