Provided by: nix-bin_2.6.0+dfsg-3_amd64 bug

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, 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:

       • defaultApp.<system>

       • defaultPackage.<system>

       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>  or  defaultApp.<system>.  It
       looks like this:

       apps.x86_64-linux.blender_2_79 = {
         type = "app";
         program = "${self.packages.x86_64-linux.blender_2_79}/bin/blender";
       };

       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.

Options

       Common evaluation options:

       • --arg name expr
         Pass the value expr as the argument name to Nix functions.

       • --argstr name string
         Pass the string string as the argument name to Nix functions.

       • --eval-store store-url
         The Nix store to use for evaluations.

       • --impure
         Allow access to mutable paths and repositories.

       • --include / -I path
         Add path to the list of locations used to look up <...> file names.

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

       Common flake-related options:

       • --commit-lock-file
         Commit changes to the flake’s lock file.

       • --inputs-from flake-url
         Use the inputs of the specified flake as registry entries.

       • --no-registries
         Don’t allow lookups in the flake registries. This option is deprecated; use --no-use-registries.

       • --no-update-lock-file
         Do not allow any updates to the flake’s lock file.

       • --no-write-lock-file
         Do not write the flake’s newly generated lock file.

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

       • --recreate-lock-file
         Recreate the flake’s lock file from scratch.

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

       Options that change the interpretation of installables:

       • --derivation
         Operate on the store derivation rather than its outputs.

       • --expr expr
         Interpret installables as attribute paths relative to the Nix expression expr.

       • --file / -f file
         Interpret installables as attribute paths relative to the Nix expression stored in file.

                                                                                                     nix3-run(1)