nix-shell1Nixnix-shellstart an interactive shell based on a Nix expressionnix-shellnamevaluenamevalueattrPathcmdregexppathsDescriptionThe command nix-shell will build
the dependencies of the specified derivation, but not the derivation
itself. It will then start an interactive shell in which all
environment variables defined by the derivation have been set to their
corresponding values, and the script $stdenv/setup
has been sourced. This is useful for reproducing the environment of a
derivation for development.OptionsAll options not listed here are passed to nix-store
--realise, except for and
/ which are passed to
nix-instantiate. See
also .cmdIn the environment of the derivation, run the
shell command cmd instead of starting
an interactive shell. However, if you end the shell command with
return, you still get an interactive shell.
This can be useful for doing any additional
initialisation.regexpDo not build any dependencies whose store path
matches the regular expression regexp.
This option may be specified multiple times.If this flag is specified, the environment is
almost entirely cleared before the interactive shell is started,
so you get an environment that more closely corresponds to the
“real” Nix build. A few variables, in particular
HOME, USER and
DISPLAY, are retained. Note that
~/.bashrc and (depending on your Bash
installation) /etc/bashrc are still sourced,
so any variables set there will affect the interactive
shell.The following common options are supported:ExamplesTo build the dependencies of the package Pan, and start an
interactive shell in which to build it:
$ nix-shell '<nixpkgs>' -A pan
$ unpackPhase
$ cd pan-*
$ configurePhase
$ buildPhase
$ ./pan/gui/pan
To clear the environment first, and do some additional automatic
initialisation of the interactive shell:
$ nix-shell '<nixpkgs>' -A pan --pure \
--command 'export NIX_DEBUG=1; export NIX_CORES=8; return'
Environment variables