about summary refs log tree commit diff
path: root/src/libstore/globals.cc
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-09-03T19·15+0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-09-03T19·21+0200
commit2c1ecf8e81f8ea5a9fa228aa22a57a6ba0a0e4df (patch)
tree4efd8ce1b987a54b0b9ca9709d2e403da8f0f2cc /src/libstore/globals.cc
parent88c07341a6bf99f923cb3d6487b72afc025b7746 (diff)
nix-env -i: Add a flag ‘--remove-all’ / ‘-r’
This is equivalent to running ‘nix-env -e '*'’ first, except that it
happens in a single transaction.  Thus, ‘nix-env -i pkgs...’ replaces
the profile with the specified set of packages.

The main motivation is to support declarative package management
(similar to environment.systemPackages in NixOS).  That is, if you
have a specification ‘profile.nix’ like this:

  with import <nixpkgs> {};
  [ thunderbird
    geeqie
    ...
  ]

then after any change to ‘profile.nix’, you can run:

  $ nix-env -f profile.nix -ir

to update the profile to match the specification.  (Without the ‘-r’
flag, if you remove a package from ‘profile.nix’, it won't be removed
from the actual profile.)

Suggested by @zefhemel.
Diffstat (limited to 'src/libstore/globals.cc')
0 files changed, 0 insertions, 0 deletions