[Nix-dev] --ignore-liveness when nix-store --delete'ing

Eelco Dolstra eelco.dolstra at logicblox.com
Thu Jul 2 17:22:37 CEST 2015


Hi,

On 02/07/15 17:12, stewart mackenzie wrote:

> Please do not run this command:
> 
> nix-store --delete --ignore-liveness /nix/store/hash-gnutar-version
> 
> I have exactly this issue: http://pastebin.com/z5k8bxWQ and wanted to
> selectively delete the troublesome gnutar package.
> 
> The above command completely and utterly borked my system.  It started deleteing
> my entire environment, I was left with a terminal that didn't understand 'ls' or
> and other command, though I could change directory. I could not run any nix*
> command.
> 
> Ah! No problem! I thought, I'll just restart into another generation.
> 
> So grateful manner I say: Thank you dearly for such a well designed system.
> These generations are insanely great.
> 
> So ... is this --ignore-liveness expected behaviour?

Sort of. "nix-store --delete <PATH>" will delete paths that refer to <PATH>,
provided that those paths are themselves garbage, in order to make <PATH>
deletable. But if you pass --ignore-liveness, the referrer closure will be
deleted unconditionally.

However, I do notice that the nix-store manpage incorrectly states that the
existence of referring paths will prevent deletion.

-- 
Eelco Dolstra | LogicBlox, Inc. | http://nixos.org/~eelco/


More information about the nix-dev mailing list