nix3-derivation-show(1)

✨ nix derivation show πŸ’…

okay bestie, so this is a page from the Nix manual β€” a General Commands Manual page, to be exact β€” and yes the title is literally nix derivation show(1). We're doing this. Grab a strawberry πŸ“.

⚠️ Warning β€” bestie this program is experimental and its interface is subject to change. Like, don't build your whole personality on it. It might get a glow-up without warning you. 🫠

πŸŽ€ NAME πŸŽ€

nix derivation show β€” show the contents of a store derivation. That's it. That's the vibe. ✨


🌸 SYNOPSIS 🌸

nix derivation show [option…] installables…

πŸ¦‹ EXAMPLES πŸ¦‹

  1. Show the store derivation that results from evaluating the Hello package:
# nix derivation show nixpkgs#hello
{
"/nix/store/s6rn4jz1sin56rf4qj5b5v8jxjm32hlk-hello-2.10.drv": {
  …
}
}
  1. Show the full derivation graph (if available) that produced your NixOS system:
# nix derivation show -r /run/current-system
  1. Print all files fetched using fetchurl by Firefox's dependency graph:
# nix derivation show -r nixpkgs#firefox \
| jq -r '.[] | select(.outputs.out.hash and .env.urls) | .env.urls' \
| uniq | sort
πŸ“ Note that .outputs.out.hash selects fixed-output derivations (derivations that produce output with a specified content hash), while .env.urls selects derivations with a urls attribute. iykyk πŸ”

πŸ’– DESCRIPTION πŸ’–

This command prints on standard output a JSON representation of the store derivations to which installables evaluate. No cap. 🫢

Store derivations are used internally by Nix. They are store paths with extension .drv that represent the build-time dependency graph to which a Nix expression evaluates. It's giving ✨ build lore ✨.

By default, this command only shows top-level derivations, but with --recursive, it also shows their dependencies. So if you want the whole family tree, you gotta ask. 🌳

nix derivation show outputs a JSON map of store paths to derivations in JSON format. See the manual for a documentation of this format. πŸ‘‘


πŸ’… OPTIONS πŸ’…

  • --no-pretty β€” Print compact JSON output on a single line, even when the output is a terminal. Some commands may print multiple JSON objects on separate lines.
See --pretty.
  • --pretty β€” Print multi-line, indented JSON output for readability.

Default: indent if output is to a terminal.

This option is only effective when --json is also specified.

  • --recursive, -r β€” Include the dependencies of the specified derivations. the way that this just pulls the whole tree 😭
  • --stdin β€” Read installables from the standard input. No default installable applied.

🧚 Common evaluation options

  • --arg name expr β€” Pass the value expr as the argument name to Nix functions.
  • --arg-from-file name path β€” Pass the contents of file path as the argument name to Nix functions.
  • --arg-from-stdin name β€” Pass the contents of stdin as the argument name to Nix functions.
  • --argstr name string β€” Pass the string string as the argument name to Nix functions.
  • --debugger β€” Start an interactive environment if evaluation fails. main character debugging energy fr πŸ”₯
  • --eval-store store-url β€” The URL of the Nix store to use for evaluation, i.e. to store derivations (.drv files) and inputs referenced by them.
  • --impure β€” Allow access to mutable paths and repositories. (yes this is the chaotic one πŸ™ˆ)
  • --include, -I path β€” Add path to search path entries used to resolve lookup paths.

This option may be given multiple times.

Paths added through -I take precedence over the nix-path configuration setting and the NIX_PATH environment variable.

  • --override-flake original-ref resolved-ref β€” Override the flake registries, redirecting original-ref to resolved-ref.
  • --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.
DEPRECATED β€” Use --no-use-registries instead.
  • --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.
  • --output-lock-file flake-lock-path β€” Write the given lock file instead of flake.lock within the top-level flake.
  • --override-input input-path flake-url β€” Override a specific flake input (e.g. dwarffs/nixpkgs). The input path must not be empty. This implies --no-write-lock-file.
  • --recreate-lock-file β€” Recreate the flake's lock file from scratch.
DEPRECATED β€” Use nix flake update instead.
  • --reference-lock-file flake-lock-path β€” Read the given lock file instead of flake.lock within the top-level flake.
  • --update-input input-path β€” Update a specific flake input (ignoring its previous entry in the lock file).
DEPRECATED β€” Use nix flake update instead.
  • --debug β€” Set the logging verbosity level to 'debug'.
  • --log-format format β€” Set the format of log output; one of raw, internal-json, bar or bar-with-logs.
  • --print-build-logs, -L β€” Print full build logs on standard error.
  • --quiet β€” Decrease the logging verbosity level.
  • --verbose, -v β€” Increase the logging verbosity level.

πŸ‘‘ Miscellaneous global options

  • --help β€” Show usage information.
  • --offline β€” Disable substituters and consider all previously downloaded files up-to-date.
  • --option name value β€” Set the Nix configuration setting name to value (overriding nix.conf).
  • --refresh β€” Consider all previously downloaded files out-of-date.
  • --repair β€” During evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.
  • --version β€” Show version information.

πŸ”₯ Options that change the interpretation of installables

  • --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 is read from standard input. Implies --impure.
Note β€” See man nix.conf for overriding configuration settings with command line flags. 🧚

ok bestie that's the whole page, we ate and left no crumbs πŸ’…βœ¨ The vibes came straight from the nix3-derivation-show(1) manual β€” footer said nix3-derivation-show(1), so go off, and it's dated with that same footer stamp, source and version included, no gatekeeping here. πŸŽ€πŸ¦‹πŸ’–

πŸ“¦ where this page comes from