nix3-print-dev-env(1)
print shell code that can be sourced by bash to reproduce the build environment of a derivation Cnix print-dev-env [opti
Description
nix3-print-dev-env
Warning: This program is experimental and its interface is subject to change.
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.