FreeBSD Manual Pages
nix3-run(1) General Commands Manual nix3-run(1) Warning This program is experimental <../../development/experimental- features.md#xp-feature-nix-command> and its interface is subject to change. Name nix run - run a Nix application Synopsis nix run [option...] installable args... Examples • Run the default app from the blender-bin flake: # nix run blender-bin • Run a non-default app from the blender-bin flake: # nix run blender-bin#blender_2_83 Tip: you can find apps provided by this flake by running nix flake show blender-bin. • Run vim from the nixpkgs flake: # nix run nixpkgs#vim Note that vim (as of the time of writing of this page) is not an app but a package. Thus, Nix runs the eponymous file from the vim package. • Run vim with arguments: # nix run nixpkgs#vim -- --help Description nix run builds and runs installable <./nix.md#installables>, which must evaluate to an app or a regular Nix derivation. If installable evaluates to an app (see below), it executes the program specified by the app definition. If installable evaluates to a derivation, it will try to execute the program <out>/bin/<name>, where out is the primary output store path of the derivation, and name is the first of the following that exists: • The meta.mainProgram attribute of the derivation. • The pname attribute of the derivation. • The name part of the value of the name attribute of the derivation. For instance, if name is set to hello-1.10, nix run will run $out/bin/hello. Flake output attributes If no flake output attribute is given, nix run tries the following flake output attributes: • apps.<system>.default • packages.<system>.default If an attribute name is given, nix run tries the following flake output attributes: • apps.<system>.<name> • packages.<system>.<name> • legacyPackages.<system>.<name> Apps An app is specified by a flake output attribute named apps.<sys- tem>.<name>. It looks like this: apps.x86_64-linux.blender_2_79 = { type = "app"; program = "${self.packages.x86_64-linux.blender_2_79}/bin/blender"; meta.description = "Run Blender, a free and open-source 3D creation suite."; }; The only supported attributes are: • type (required): Must be set to app. • program (required): The full path of the executable to run. It must reside in the Nix store. • meta.description (optional): A description of the app. Options 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-run(1)
Name | Synopsis | Examples | Description | Flake output attributes | Apps | Options
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nix3-run&sektion=1&manpath=FreeBSD+Ports+15.0>
