nix3-run - Man Page
run a Nix application
Warning
This program is experimental and its interface is subject to change.
Synopsis
nix run [option…] installable args…
Examples
- Run the default app from the
blender-binflake:
# nix run blender-bin
- Run a non-default app from the
blender-binflake:
# nix run blender-bin#blender_2_83
Tip: you can find apps provided by this flake by running nix flake show blender-bin.
- Run
vimfrom thenixpkgsflake:
# 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
vimwith arguments:
# nix run nixpkgs#vim -- --help
Description
nix run builds and runs installable , 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.mainProgramattribute of the derivation. - The
pnameattribute of the derivation. - The name part of the value of the
nameattribute 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>.defaultpackages.<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.<system>.<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 toapp.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
--argname exprPass the value expr as the argument name to Nix functions.
--arg-from-filename pathPass the contents of file path as the argument name to Nix functions.
--arg-from-stdinnamePass the contents of stdin as the argument name to Nix functions.
--argstrname stringPass the string string as the argument name to Nix functions.
--debuggerStart an interactive environment if evaluation fails.
--eval-storestore-urlThe URL of the Nix store to use for evaluation, i.e. to store derivations (
.drvfiles) and inputs referenced by them.--impureAllow access to mutable paths and repositories.
--include/-IpathAdd path to search path entries used to resolve lookup paths
This option may be given multiple times.
Paths added through
-Itake precedence over thenix-pathconfiguration setting and theNIX_PATHenvironment variable .--override-flakeoriginal-ref resolved-refOverride the flake registries, redirecting original-ref to resolved-ref.
Miscellaneous global options
--helpShow usage information.
--offlineDisable substituters and consider all previously downloaded files up-to-date.
--optionname valueSet the Nix configuration setting name to value (overriding
nix.conf).--refreshConsider all previously downloaded files out-of-date.
--repairDuring evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.
--versionShow version information.
Options that change environment variables
--ignore-env/-iClear the entire environment, except for those specified with
--keep-env-var.--keep-env-var/-knameKeep the environment variable name, when using
--ignore-env.--set-env-var/-sname valueSets an environment variable name with value.
--unset-env-var/-unameUnset the environment variable name.
Options that change the interpretation of installables
--exprexprInterpret installables as attribute paths relative to the Nix expression expr.
--file/-ffileInterpret installables as attribute paths relative to the Nix expression stored in file. If file is the character -, then a Nix expression is read from standard input. Implies
--impure.Note
See
man nix.conffor overriding configuration settings with command line flags.