Provided by: nix-bin_2.8.0-1_amd64 bug

Name

       nix  print-dev-env  -  print shell code that can be sourced by bash to reproduce the build
       environment of a derivation

Synopsis

       nix print-dev-env [option…] installable

Examples

       • Apply the build environment of GNU hello to the current shell:

       # . <(nix print-dev-env nixpkgs#hello)

       • Get the build environment in JSON format:

       # nix print-dev-env nixpkgs#hello --json

              The output will look like this:

       {
       "bashFunctions": {
         "buildPhase": " \n    runHook preBuild;\n...",
         ...
       },
       "variables": {
         "src": {
           "type": "exported",
           "value": "/nix/store/3x7dwzq014bblazs7kq20p9hyzz0qh8g-hello-2.10.tar.gz"
         },
         "postUnpackHooks": {
           "type": "array",
           "value": ["_updateSourceDateEpochFromSourceRoot"]
         },
         ...
       }
       }

Description

       This command prints a shell script that can be sourced by bash and that sets the variables
       and  shell functions defined by the build process of installable. This allows you to get a
       similar build environment in your current shell rather than in a  subshell  (as  with  nix
       develop).

       With  --json, the output is a JSON serialisation of the variables and functions defined by
       the build process.

Options

       • --json
         Produce output in JSON format, suitable for consumption by another program.

       • --profile path
         The profile to update.

       • --redirect installable outputs-dir
         Redirect a store path to a mutable location.

       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.
         If file is the character -, then a Nix expression will be read from standard input.

                                                                            nix3-print-dev-env(1)