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

FreeBSD Manual Pages

  
 
  

home | help
nix3-develop(1)		    General Commands Manual	       nix3-develop(1)

	      Warning
	      This  program  is	 experimental <../../development/experimental-
	      features.md#xp-feature-nix-command> and its interface is subject
	      to change.

Name
       nix develop - run a bash	shell that provides the	build environment of a
       derivation

Synopsis
       nix develop [option...] installable

Examples
         Start	a shell	with the build environment of the default  package  of
	  the flake in the current directory:

       # nix develop

	      Typical commands to run inside this shell	are:

       # configurePhase
       # buildPhase
       # installPhase

	      Alternatively,  you  can	run  whatever build tools your project
	      uses directly, e.g. for a	typical	Unix project:

       # ./configure --prefix=$out
       # make
       # make install

         Run a	particular build phase directly:

       # nix develop --unpack
       # nix develop --configure
       # nix develop --build
       # nix develop --check
       # nix develop --install
       # nix develop --installcheck

         Start	a shell	with the build environment of GNU Hello:

       # nix develop nixpkgs#hello

         Record a build environment in	a profile:

       # nix develop --profile /tmp/my-build-env nixpkgs#hello

         Use a	build environment previously recorded in a profile:

       # nix develop /tmp/my-build-env

         Replace all occurrences of the store path corresponding to glibc.dev
	  with a writable directory:

       # nix develop --redirect	nixpkgs#glibc.dev ~/my-glibc/outputs/dev

	      Note that	this is	useful if you're running a nix	develop	 shell
	      for  nixpkgs#glibc  in  ~/my-glibc  and  want to compile another
	      package against it.

         Run a	series of script commands:

       # nix develop --command bash -c "mkdir build && cmake ..	&& make"

Description
       nix develop starts a bash shell that provides an	interactive build  en-
       vironment  nearly  identical to what Nix	would use to build installable
       <./nix.md#installables>.	Inside this shell, environment	variables  and
       shell  functions	are set	up so that you can interactively and incremen-
       tally build your	package.

       Nix determines the build	environment by building	a modified version  of
       the  derivation	installable  that  just	 records  the environment ini-
       tialised	by stdenv and exits. This build	environment  can  be  recorded
       into a profile using --profile.

       The  prompt  used  by  the  bash	shell can be customised	by setting the
       bash-prompt, bash-prompt-prefix,	 and  bash-prompt-suffix  settings  in
       nix.conf	or in the flake's nixConfig attribute.

Flake output attributes
       If  no flake output attribute is	given, nix develop tries the following
       flake output attributes:

         devShells.<system>.default

         packages.<system>.default

       If a flake output name is given,	nix develop tries the following	 flake
       output attributes:

         devShells.<system>.<name>

         packages.<system>.<name>

         legacyPackages.<system>.<name>

Options
         --build <#opt-build>

	  Run the build	phase.

         --check <#opt-check>

	  Run the check	phase.

         --command <#opt-command> / -c	command	args

	  Instead  of  starting	an interactive shell, start the	specified com-
	  mand and arguments.

         --configure <#opt-configure>

	  Run the configure phase.

         --install <#opt-install>

	  Run the install phase.

         --installcheck <#opt-installcheck>

	  Run the installcheck phase.

         --phase <#opt-phase> phase-name

	  The stdenv phase to run (e.g.	build or configure).

         --profile <#opt-profile> path

	  The profile to operate on.

         --redirect <#opt-redirect> installable outputs-dir

	  Redirect a store path	to a mutable location.

         --unpack <#opt-unpack>

	  Run the unpack phase.

   Common evaluation options
         --arg	<#opt-arg> name	expr

	  Pass the value expr as the argument name to Nix functions.

         --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 string

	  Pass the string string as the	argument name to Nix functions.

         --debugger <#opt-debugger>

	  Start	an interactive environment if evaluation fails.

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

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

         --impure <#opt-impure>

	  Allow	access to mutable paths	and repositories.

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

	  Add  path  to	 search	 path  entries	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>.

         --override-flake <#opt-override-flake> original-ref resolved-ref

	  Override the flake registries, redirecting original-ref to resolved-
	  ref.

   Common flake-related	options
         --commit-lock-file <#opt-commit-lock-file>

	  Commit changes to the	flake's	lock file.

         --inputs-from	<#opt-inputs-from> flake-url

	  Use the inputs of the	specified flake	as registry entries.

         --no-registries <#opt-no-registries>

	  Don't	allow lookups in the flake registries.

		 DEPRECATED

		 Use --no-use-registries <../../command-ref/conf-file.md#conf-
		 use-registries> instead.

         --no-update-lock-file	<#opt-no-update-lock-file>

	  Do not allow any updates to the flake's lock file.

         --no-write-lock-file <#opt-no-write-lock-file>

	  Do not write the flake's newly generated lock	file.

         --output-lock-file <#opt-output-lock-file> flake-lock-path

	  Write	the given lock file instead of flake.lock within the top-level
	  flake.

         --override-input <#opt-override-input> input-path flake-url

	  Override a specific flake input (e.g.	dwarffs/nixpkgs). This implies
	  --no-write-lock-file.

         --recreate-lock-file <#opt-recreate-lock-file>

	  Recreate the flake's lock file from scratch.

		 DEPRECATED

		 Use  nix  flake update	<../../command-ref/new-cli/nix3-flake-
		 update.md> instead.

         --reference-lock-file	<#opt-reference-lock-file> flake-lock-path

	  Read the given lock file instead of flake.lock within	the  top-level
	  flake.

         --update-input <#opt-update-input> input-path

	  Update  a  specific  flake input (ignoring its previous entry	in the
	  lock file).

		 DEPRECATED

		 Use nix flake	update	<../../command-ref/new-cli/nix3-flake-
		 update.md> instead.

   Logging-related options
         --debug <#opt-debug>

	  Set the logging verbosity level to `debug'.

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

	  Set the format of log	output;	one of raw, internal-json, bar or bar-
	  with-logs.

         --print-build-logs <#opt-print-build-logs> / -L

	  Print	full build logs	on standard error.

         --quiet <#opt-quiet>

	  Decrease the logging verbosity level.

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

	  Increase the logging verbosity level.

   Miscellaneous global	options
         --help <#opt-help>

	  Show usage information.

         --offline <#opt-offline>

	  Disable  substituters	 and  consider all previously downloaded files
	  up-to-date.

         --option <#opt-option> name value

	  Set  the  Nix	 configuration	setting	 name  to  value   (overriding
	  nix.conf).

         --refresh <#opt-refresh>

	  Consider all previously downloaded files out-of-date.

         --repair <#opt-repair>

	  During  evaluation,  rewrite	missing	 or corrupted files in the Nix
	  store. During	building, rebuild missing or corrupted store paths.

         --version <#opt-version>

	  Show version information.

   Options that	change environment variables
         --ignore-env <#opt-ignore-env> / -i

	  Clear	the  entire  environment,  except  for	those  specified  with
	  --keep-env-var.

         --keep-env-var <#opt-keep-env-var> / -k name

	  Keep the environment variable	name, when using --ignore-env.

         --set-env-var	<#opt-set-env-var> / -s	name value

	  Sets an environment variable name with value.

         --unset-env-var <#opt-unset-env-var> / -u name

	  Unset	the environment	variable name.

   Options that	change the interpretation of installables
         --expr <#opt-expr> expr

	  Interpret	       installables	       <../../command-ref/new-
	  cli/nix.md#installables> as attribute	paths relative to the Nix  ex-
	  pression expr.

         --file <#opt-file> / -f file

	  Interpret	       installables	       <../../command-ref/new-
	  cli/nix.md#installables> as attribute	paths relative to the Nix  ex-
	  pression  stored in file. If file is the character -,	then a Nix ex-
	  pression is read from	standard input.	Implies	--impure.

	  Note

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

							       nix3-develop(1)

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

home | help