nix3-path-info(1)

πŸ’– nix3-path-info(1) πŸ’–

okay bestie, buckle up β€” this is the manual page for nix path-info, and it's giving "let me tell you everything about your store paths" energy. It lives in the General Commands Manual. ✨

⚠️ Warning: This program is experimental and its interface is subject to change. (yes, fr fr β€” the interface can just shift under you, no cap πŸ’€)

🌸 NAME 🌸

nix path-info β€” query information about store paths πŸ‘‘


πŸ“œ SYNOPSIS πŸ“œ

nix path-info [option…] installables…

πŸ“ EXAMPLES πŸ“

  • Print the store path produced by nixpkgs#hello:
# nix path-info nixpkgs#hello
/nix/store/10l19qifk7hjjq47px8m2prqk1gv4isy-hello-2.10
  • Show the closure sizes of every path in the current NixOS system closure, sorted by size:
# nix path-info --recursive --closure-size /run/current-system | sort -nk2
/nix/store/zlnmjjbpv5pwwv911qp0grqi25y80wbs-empty                                                96
/nix/store/v40fjpq45135avrmnfm8klbvdhf0dcp7-nameservers                                         112
…
/nix/store/539jkw9a8dyry7clcv60gk6na816j7y8-etc                                          5783255504
/nix/store/zqamz3cz4dbzfihki2mk7a63mbkxz9xq-nixos-system-machine-20.09.20201112.3090c65  5887562256
  • Show a package’s closure size and all its dependencies with human readable sizes:
# nix path-info --recursive --size --closure-size --human-readable nixpkgs#rustc
/nix/store/klarszqikbvf6n70581w0381zb7rlzri-ncurses-6.2-dev      386.7 KiB   69.1 MiB
/nix/store/30rva1kafnr6fyf8y5xxlpnwixvdpv4w-libpfm-4.11.0          5.9 MiB   37.4 MiB
…
  • Check the existence of a path in a binary cache:
# nix path-info --recursive /nix/store/blzxgyvrk32ki6xga10phr4sby2xf25q-geeqie-1.5.1 --store https://cache.nixos.org/
path '/nix/store/blzxgyvrk32ki6xga10phr4sby2xf25q-geeqie-1.5.1' is not valid
  • Print the 10 most recently added paths (using --json and the jq(1) command):
# nix path-info --json --all | jq -r 'to_entries | sort_by(.value.registrationTime) | .[-11:-1][] | .key'
  • Show the size of the entire Nix store:
# nix path-info --json --all | jq 'map(.narSize) | add'
49812020936
  • Show every path whose closure is bigger than 1 GB, sorted by closure size:
# nix path-info --json --all --closure-size \
| jq 'map_values(.closureSize | select(. < 1e9)) | to_entries | sort_by(.value)'
[
…,
{
  .key = "/nix/store/zqamz3cz4dbzfihki2mk7a63mbkxz9xq-nixos-system-machine-20.09.20201112.3090c65",
  .value = 5887562256,
}
]
  • Print the path of the store derivation produced by nixpkgs#hello:
# nix path-info --derivation nixpkgs#hello
/nix/store/s6rn4jz1sin56rf4qj5b5v8jxjm32hlk-hello-2.10.drv

πŸ’… DESCRIPTION πŸ’…

This command shows you info about the store paths that your installables produce β€” or, if you pass --all, it spills the tea about every path in the store. πŸ«–

By default it just prints the store paths, that's it. You want the ✨extra✨? Then pass flags like --closure-size, --size, --sigs or --json and watch it glow up.

⚠️ Warning Lowkey important: nix path-info does not build or substitute the installables you specify. So if the corresponding store paths don't already exist, this command will fail. 😭 Use nix build first to make sure they exist. periodt.

✨ OPTIONS ✨

  • --closure-size, -S β€” Print the sum of the sizes of the NAR serialisations of the closure of each path.
  • --human-readable, -h β€” With -s and -S, print sizes in a human-friendly format such as 5.67G (because nobody wants to count digits at 2am πŸ₯²).
  • --json β€” Produce output in JSON format, suitable for consumption by another program (hello, jq bestie πŸ’œ).
  • --json-format version β€” JSON format version of store object info to use (1, 2, or 3). Version 1 uses string hashes and full store paths. Version 2 uses structured hashes and store path base names. Version 3 uses structured signatures. This flag will be required in a future release. πŸ‘€
  • --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.

  • --sigs β€” Show signatures. πŸ–ŠοΈ
  • --size, -s β€” Print the size of the NAR serialisation of each path.
  • --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.
  • --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.
  • --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

  • --all β€” Apply the operation to every store path. (yes, every one 😀)
  • --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 is read from standard input. Implies --impure.
  • --recursive, -r β€” Apply operation to closure of the specified paths.
Note See man nix.conf for overriding configuration settings with command line flags.

and that's the whole page, bestie β€” every flag, every default, every deprecated warning, all of it πŸ’– straight out of the nix3-path-info(1) page in the General Commands Manual. go query some store paths, you absolute icon πŸŽ€βœ¨

πŸ“¦ where this page comes from