FreeBSD Manual Pages
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)
Name | Synopsis | Examples | Description | Flake output attributes | Options
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>
