Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
nix-env	--set(1)	    General Commands Manual	      nix-env --set(1)

Name
       nix-env --set - set profile to contain a	specified derivation

   Synopsis
       nix-env --set drvname

   Description
       The  --set  operation  modifies	the current generation of a profile so
       that it contains	exactly	the specified derivation, and nothing else.

Options
       The following options are allowed for all nix-env operations,  but  may
       not always have an effect.

         --file / -f path

	  Specifies the	Nix expression (designated below as the	active Nix ex-
	  pression)  used by the --install, --upgrade, and --query --available
	  operations to	obtain derivations. The	default	is ~/.nix-defexpr.

	  If the argument starts with http:// or https://, it  is  interpreted
	  as  the  URL	of a tarball that will be downloaded and unpacked to a
	  temporary location. The tarball must include a single	top-level  di-
	  rectory containing at	least a	file named default.nix.

         --profile / -p path

	  Specifies the	profile	to be used by those operations that operate on
	  a  profile  (designated below	as the active profile).	A profile is a
	  sequence of user environments	called generations, one	 of  which  is
	  the current generation.

         --dry-run

	  For  the  --install,	--upgrade,  --uninstall,  --switch-generation,
	  --delete-generations and --rollback operations, this flag will cause
	  nix-env to print what	would be done if this flag had not been	speci-
	  fied,	without	actually doing it.

	  --dry-run  also  prints  out	which  paths   will   be   substituted
	  <../../glossary.md> (i.e., downloaded) and which paths will be built
	  from source (because no substitute is	available).

         --system-filter system

	  By  default, operations such as --query --available show derivations
	  matching any platform. This option allows you	to use derivations for
	  the specified	platform system.

Common Options
       Most Nix	commands accept	the following command-line options:

         --help <#opt-help>

	  Prints out a summary of the command syntax and exits.

         --version <#opt-version>

	  Prints out the Nix version number on standard	output and exits.

         --verbose <#opt-verbose> / -v

	  Increases the	level of verbosity of diagnostic messages  printed  on
	  standard  error.  For	each Nix operation, the	information printed on
	  standard output  is  well-defined;  any  diagnostic  information  is
	  printed on standard error, never on standard output.

	  This	option	may be specified repeatedly.  Currently, the following
	  verbosity levels exist:

	    0 Errors only

	  Only print messages explaining why the Nix invocation	failed.

	    1 Informational

	  Print	useful messages	about what Nix is doing.  This is the default.

	    2 Talkative

	  Print	more informational messages.

	    3 Chatty

	  Print	even more informational	messages.

	    4 Debug

	  Print	debug information.

	    5 Vomit

	  Print	vast amounts of	debug information.

         --quiet <#opt-quiet>

	  Decreases the	level of verbosity of diagnostic messages  printed  on
	  standard error.  This	is the inverse option to -v / --verbose.

	  This option may be specified repeatedly.  See	the previous verbosity
	  levels list.

         --log-format <#opt-log-format> format

	  This option can be used to change the	output of the log format, with
	  format being one of:

	    raw

	  This is the raw format, as outputted by nix-build.

	    internal-json

	  Outputs the logs in a	structured manner.

		 Warning

		 While	the  schema itself is relatively stable, the format of
		 the error-messages (namely of the msg-field) can  change  be-
		 tween releases.

	    bar

	  Only display a progress bar during the builds.

	    bar-with-logs

	  Display the raw logs,	with the progress bar at the bottom.

         --no-build-output <#opt-no-build-output> / -Q

	  By  default, output written by builders to standard output and stan-
	  dard error is	echoed to the Nix command's standard error.  This  op-
	  tion	suppresses  this  behaviour.  Note that	the builder's standard
	  output  and  error  are  always  written  to	a  log	file  in  pre-
	  fix/nix/var/log/nix.

         --max-jobs <#opt-max-jobs> / -j number

	  Sets	the maximum number of build jobs that Nix will perform in par-
	  allel	to the specified number.  Specify auto to use  the  number  of
	  CPUs	in  the	system.	 The default is	specified by the max-jobs con-
	  figuration setting, which itself defaults to 1.  A higher  value  is
	  useful on SMP	systems	or to exploit I/O latency.

	  Setting  it  to  0 disallows building	on the local machine, which is
	  useful when you want builds to happen	only on	remote builders.

         --cores <#opt-cores>

	  Sets the value of the	NIX_BUILD_CORES	environment  variable  in  the
	  invocation  of  builders.   Builders	can use	this variable at their
	  discretion to	control	the maximum amount of  parallelism.   For  in-
	  stance, in Nixpkgs, if the derivation	attribute enableParallelBuild-
	  ing is set to	true, the builder passes the -jN flag to GNU Make.  It
	  defaults to the value	of the cores configuration setting, if set, or
	  1  otherwise.	  The  value  0	 means that the	builder	should use all
	  available CPU	cores in the system.

         --max-silent-time <#opt-max-silent-time>

	  Sets the maximum number of seconds that a  builder  can  go  without
	  producing  any  data	on standard output or standard error.  The de-
	  fault	is specified by	the max-silent-time configuration setting.   0
	  means	no time-out.

         --timeout <#opt-timeout>

	  Sets	the maximum number of seconds that a builder can run.  The de-
	  fault	is specified by	the timeout configuration setting.  0 means no
	  timeout.

         --keep-going <#opt-keep-going> / -k

	  Keep going in	case of	failed builds, to the greatest	extent	possi-
	  ble.	 That  is,  if building	an input of some derivation fails, Nix
	  will still build the other inputs, but not  the  derivation  itself.
	  Without this option, Nix stops if any	build fails (except for	builds
	  of  substitutes),  possibly  killing	builds in progress (in case of
	  parallel or distributed builds).

         --keep-failed	<#opt-keep-failed> / -K

	  Specifies that in case of a build failure, the  temporary  directory
	  (usually  in	/tmp)  in  which  the  build takes place should	not be
	  deleted.  The	path of	the build directory is printed as an  informa-
	  tional message.

         --fallback <#opt-fallback>

	  Whenever  Nix	 attempts  to build a derivation for which substitutes
	  are known for	each output  path,  but	 realising  the	 output	 paths
	  through the substitutes fails, fall back on building the derivation.

	  The  most  common  scenario  in which	this is	useful is when we have
	  registered substitutes in order to perform binary distribution from,
	  say, a network repository.  If the repository	is down, the  realisa-
	  tion	of  the	 derivation will fail.	When this option is specified,
	  Nix will build the derivation	instead.  Thus,	installation from  bi-
	  naries  falls	 back on installation from source.  This option	is not
	  the default since it is generally  not  desirable  for  a  transient
	  failure  in  obtaining  the substitutes to lead to a full build from
	  source (with the related consumption of resources).

         --readonly-mode <#opt-readonly-mode>

	  When this option is used, no attempt is made to open the  Nix	 data-
	  base.	  Most Nix operations do need database access, so those	opera-
	  tions	will fail.

         --arg	<#opt-arg> name	value

	  This option is accepted by nix-env, nix-instantiate,	nix-shell  and
	  nix-build.   When evaluating Nix expressions,	the expression evalua-
	  tor will automatically try to	call functions that it encounters.  It
	  can automatically call functions for which every argument has	a  de-
	  fault	 value <../../language/syntax.md#functions> (e.g., { argName ?
	  defaultValue }: ...).

	  With --arg, you can also call	functions that have arguments  without
	  a  default  value  (or  override  a default value).  That is,	if the
	  evaluator encounters a function with an argument named name, it will
	  call it with value value.

	  For instance,	the top-level default.nix in  Nixpkgs  is  actually  a
	  function:

       { # The system (e.g., `i686-linux') for which to	build the packages.
       system ?	builtins.currentSystem
       ...
       }: ...

	      So  if  you  call	this Nix expression (e.g., when	you do nix-env
	      --install	--attr pkgname), the function will be called automati-
	      cally	 using	    the	     value	builtins.currentSystem
	      <../../language/builtins.md>  for	 the system argument.  You can
	      override this using --arg, e.g., nix-env --install  --attr  pkg-
	      name  --arg system \"i686-freebsd\".  (Note that since the argu-
	      ment is a	Nix string literal, you	have to	escape the quotes.)

         --arg-from-file <#opt-arg-from-file> name path

	  Pass the contents of file path as the	argument  name	to  Nix	 func-
	  tions.

         --arg-from-stdin <#opt-arg-from-stdin> name

	  Pass the contents of stdin as	the argument name to Nix functions.

         --argstr <#opt-argstr> name value

	  This	option	is  like --arg,	only the value is not a	Nix expression
	  but a	string.	 So instead of --arg system \"i686-linux\" (the	 outer
	  quotes  are  to  keep	 the  shell happy) you can say --argstr	system
	  i686-linux.

         --attr <#opt-attr> / -A attrPath

	  Select an attribute from the top-level Nix expression	 being	evalu-
	  ated.	  (nix-env,  nix-instantiate,  nix-build  and nix-shell	only.)
	  The attribute	path attrPath is a sequence of attribute  names	 sepa-
	  rated	 by  dots.   For instance, given a top-level Nix expression e,
	  the  attribute  path	xorg.xorgserver	 would	cause  the  expression
	  e.xorg.xorgserver to be used.	 See nix-env --install <../../command-
	  ref/nix-env/install.md> for some concrete examples.

	  In  addition to attribute names, you can also	specify	array indices.
	  For instance,	the attribute path foo.3.bar selects the bar attribute
	  of the fourth	element	of the array in	the foo	attribute of the  top-
	  level	expression.

         --eval-store <#opt-eval-store> store-url

	  The  URL  to	the  Nix  store	<../../store/types/index.md#store-url-
	  format> to use for evaluation, i.e. where to store derivations (.drv
	  files) and inputs referenced by them.

         --expr <#opt-expr> / -E

	  Interpret the	command	line arguments as a list of Nix	expressions to
	  be parsed and	evaluated, rather than as a list of file names of  Nix
	  expressions.	(nix-instantiate, nix-build and	nix-shell only.)

	  For  nix-shell,  this	option is commonly used	to give	you a shell in
	  which	you can	build the packages returned by the expression.	If you
	  want to get a	shell which contain the	built packages ready for  use,
	  give	your  expression  to the nix-shell --packages convenience flag
	  instead.

         -I / --include <#opt-I> path

	  Add an entry to the list of search  paths  used  to  resolve	lookup
	  paths	 <../../language/constructs/lookup-path.md>.   This option may
	  be given multiple times.

	  Paths	added through -I take precedence over the nix-path  configura-
	  tion	setting	<../../command-ref/conf-file.md#conf-nix-path> and the
	  NIX_PATH environment variable	 <../../command-ref/env-common.md#env-
	  NIX_PATH>.

         --impure <#opt-impure>

	  Allow	access to mutable paths	and repositories.

         --option <#opt-option> name value

	  Set the Nix configuration option name	to value.  This	overrides set-
	  tings	in the Nix configuration file (see nix.conf5).

         --repair <#opt-repair>

	  Fix  corrupted or missing store paths	by redownloading or rebuilding
	  them.	 Note that this	is slow	because	it requires computing a	 cryp-
	  tographic  hash  of the contents of every path in the	closure	of the
	  build.  Also note the	warning	under nix-store	--repair-path.

	  Note

	  See man nix.conf <../../command-ref/conf-file.md#command-line-flags>
	  for overriding configuration settings	with command line flags.

Environment variables
         NIX_PROFILE

	  Location of the Nix profile. Defaults	to the target of  the  symlink
	  ~/.nix-profile,  if it exists, or /nix/var/nix/profiles/default oth-
	  erwise.

Common Environment Variables
       Most Nix	commands interpret the following environment variables:

         IN_NIX_SHELL <#env-IN_NIX_SHELL>

	  Indicator that tells if the current environment was set up  by  nix-
	  shell. It can	have the values	pure or	impure.

         NIX_PATH <#env-NIX_PATH>

	  A colon-separated list of search path	entries	used to	resolve	lookup
	  paths	<../../language/constructs/lookup-path.md>.

	  This	environment  variable overrides	the value of the nix-path con-
	  figuration setting <../../command-ref/conf-file.md#conf-nix-path>.

	  It can be extended using the -I  option  <../../command-ref/opt-com-
	  mon.md#opt-I>.

		 Example

	  $ export NIX_PATH=`/home/eelco/Dev:nixos-config=/etc/nixos

	  If  NIX_PATH	is set to an empty string, resolving search paths will
	  always fail.

		 Example

	  $ NIX_PATH= nix-instantiate --eval '<nixpkgs>'
	  error: file 'nixpkgs'	was not	found in the Nix search	path (add it using $NIX_PATH or	-I)

         NIX_IGNORE_SYMLINK_STORE <#env-NIX_IGNORE_SYMLINK_STORE>

	  Normally, the	Nix store directory (typically /nix/store) is not  al-
	  lowed	 to  contain any symlink components. This is to	prevent	impure
	  builds. Builders sometimes canonicalise paths	by resolving all  sym-
	  link components. Thus, builds	on different machines (with /nix/store
	  resolving  to	 different  locations)	could yield different results.
	  This is generally not	a problem, except when builds are deployed  to
	  machines where /nix/store resolves differently. If you are sure that
	  youre	 not going to do that, you can set NIX_IGNORE_SYMLINK_STORE to
	  1.

	  Note that if youre symlinking	the Nix	store so that you can  put  it
	  on  another  file  system  than the root file	system,	on Linux youre
	  better off using bind	mount points, e.g.,

       $ mkdir /nix
       $ mount -o bind /mnt/otherdisk/nix /nix

	      Consult the mount	8 manual page for details.

         NIX_STORE_DIR	<#env-NIX_STORE_DIR>

	  Overrides the	location of the	Nix store (default prefix/store).

         NIX_DATA_DIR <#env-NIX_DATA_DIR>

	  Overrides the	location of the	Nix  static  data  directory  (default
	  prefix/share).

         NIX_LOG_DIR <#env-NIX_LOG_DIR>

	  Overrides  the  location  of	the  Nix  log  directory (default pre-
	  fix/var/log/nix).

         NIX_STATE_DIR	<#env-NIX_STATE_DIR>

	  Overrides the	location of the	 Nix  state  directory	(default  pre-
	  fix/var/nix).

         NIX_CONF_DIR <#env-NIX_CONF_DIR>

	  Overrides  the  location  of	the system Nix configuration directory
	  (default sysconfdir/nix, i.e.	/etc/nix on most systems).

         NIX_CONFIG <#env-NIX_CONFIG>

	  Applies settings from	Nix configuration from the  environment.   The
	  content  is treated as if it was read	from a Nix configuration file.
	  Settings are separated by the	newline	character.

         NIX_USER_CONF_FILES <#env-NIX_USER_CONF_FILES>

	  Overrides the	location of the	Nix user configuration files  to  load
	  from.

	  The  default	are  the locations according to	the XDG	Base Directory
	  Specification	      <https://specifications.freedesktop.org/basedir-
	  spec/basedir-spec-latest.html>.  See the XDG Base Directories	<#xdg-
	  base-directories> sub-section	for details.

	  The variable is treated as a list separated by the : token.

         TMPDIR <#env-TMPDIR>

	  Use the specified directory to store temporary files.	In particular,
	  this	includes  temporary  build directories;	these can take up sub-
	  stantial amounts of disk space. The default is /tmp.

         NIX_REMOTE <#env-NIX_REMOTE>

	  This variable	should be set to daemon	if you want  to	 use  the  Nix
	  daemon  to  execute  Nix operations. This is necessary in multi-user
	  Nix installations  <../../installation/multi-user.md>.  If  the  Nix
	  daemon's  Unix  socket  is  at some non-standard path, this variable
	  should be set	to unix://path/to/socket. Otherwise, it	should be left
	  unset.

         NIX_SHOW_STATS <#env-NIX_SHOW_STATS>

	  If set to 1, Nix will	print some evaluation statistics, such as  the
	  number of values allocated.

         NIX_COUNT_CALLS <#env-NIX_COUNT_CALLS>

	  If  set  to 1, Nix will print	how often functions were called	during
	  Nix expression evaluation. This is useful for	profiling your Nix ex-
	  pressions.

         GC_INITIAL_HEAP_SIZE <#env-GC_INITIAL_HEAP_SIZE>

	  If Nix has been configured to	use the	Boehm garbage collector,  this
	  variable  sets the initial size of the heap in bytes.	It defaults to
	  384 MiB. Setting it to a low value reduces memory  consumption,  but
	  will increase	runtime	due to the overhead of garbage collection.

   XDG Base Directories
       Nix  follows  the  XDG Base Directory Specification <https://specifica-
       tions.freedesktop.org/basedir-spec/basedir-spec-latest.html>.

       For backwards compatibility, Nix	commands will follow the standard only
       when use-xdg-base-directories <../../command-ref/conf-file.md#conf-use-
       xdg-base-directories> is	enabled.   New	Nix  commands  <../../command-
       ref/new-cli/nix.md> (experimental) conform to the standard by default.

       The  following environment variables are	used to	determine locations of
       various state and configuration files:

         [XDG_CONFIG_HOME]{#env-XDGCONFIGHOME}	(default ~/.config)
         [XDG_STATE_HOME]{#env-XDGSTATEHOME} (default ~/.local/state)
         [XDG_CACHE_HOME]{#env-XDGCACHEHOME} (default ~/.cache)

       In addition, setting the	following environment variables	overrides  the
       XDG base	directories:

         [NIX_CONFIG_HOME]{#env-NIXCONFIGHOME}	(default $XDG_CONFIG_HOME/nix)
         [NIX_STATE_HOME]{#env-NIXSTATEHOME} (default $XDG_STATE_HOME/nix)
         [NIX_CACHE_HOME]{#env-NIXCACHEHOME} (default $XDG_CACHE_HOME/nix)

       When use-xdg-base-directories <../../command-ref/conf-file.md#conf-use-
       xdg-base-directories> is	enabled, the configuration directory is:

       1. $NIX_CONFIG_HOME, if it is defined
       2. Otherwise, $XDG_CONFIG_HOME/nix, if XDG_CONFIG_HOME is defined
       3. Otherwise, ~/.config/nix.

       Likewise	for the	state and cache	directories.

   Examples
       The  following  updates a profile such that its current generation will
       contain just Firefox:

       $ nix-env --profile /nix/var/nix/profiles/browser --set firefox

							      nix-env --set(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nix-env-set&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help