Warning
This program is experimental and its interface is subject to change.
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/v5sv61sszx301i0x6xysaqzla09nksnd-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/hl5xwp9kdrd1zkm0idm3kkby9q66z404-empty 96 /nix/store/27324qvqhnxj3rncazmxc4mwy79kz8ha-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/01rrgsg5zk3cds0xgdsq40zpk6g51dz9-ncurses-6.2-dev 386.7K 69.1M /nix/store/0q783wnvixpqz6dxjp16nw296avgczam-libpfm-4.11.0 5.9M 37.4M …
-
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 'sort_by(.registrationTime)[-11:-1][].path'
-
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(select(.closureSize > 1e9)) | sort_by(.closureSize) | map([.path, .closureSize])' [ …, [ "/nix/store/zqamz3cz4dbzfihki2mk7a63mbkxz9xq-nixos-system-machine-20.09.20201112.3090c65", 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 information about the store paths produced by
installables, or about all paths in the store if you pass --all
.
By default, this command only prints the store paths. You can get
additional information by passing flags such as --closure-size
,
--size
, --sigs
or --json
.
Warning
Note that
nix path-info
does not build or substitute the installables you specify. Thus, if the corresponding store paths don't already exist, this command will fail. You can usenix build
to ensure that they exist.
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 as5.67G
. -
Produce output in JSON format, suitable for consumption by another program.
-
Show signatures.
-
--size
/-s
Print the size of the NAR serialisation of each path.
-
Read installables from the standard input. No default installable applied.
Common evaluation options:
-
--arg
name exprPass the value expr as the argument name to Nix functions.
-
--argstr
name stringPass the string string as the argument name to Nix functions.
-
Start an interactive environment if evaluation fails.
-
--eval-store
store-urlThe URL of the Nix store to use for evaluation, i.e. to store derivations (
.drv
files) and inputs referenced by them. -
Allow access to mutable paths and repositories.
-
--include
/-I
pathAdd path to the Nix search path. The Nix search path is initialized from the colon-separated
NIX_PATH
environment variable, and is used to look up the location of Nix expressions using paths enclosed in angle brackets (i.e.,<nixpkgs>
).For instance, passing
-I /home/eelco/Dev -I /etc/nixos
will cause Nix to look for paths relative to
/home/eelco/Dev
and/etc/nixos
, in that order. This is equivalent to setting theNIX_PATH
environment variable to/home/eelco/Dev:/etc/nixos
It is also possible to match paths against a prefix. For example, passing
-I nixpkgs=/home/eelco/Dev/nixpkgs-branch -I /etc/nixos
will cause Nix to search for
<nixpkgs/path>
in/home/eelco/Dev/nixpkgs-branch/path
and/etc/nixos/nixpkgs/path
.If a path in the Nix search path starts with
http://
orhttps://
, it is interpreted as the URL of a tarball that will be downloaded and unpacked to a temporary location. The tarball must consist of a single top-level directory. For example, passing-I nixpkgs=https://github.com/NixOS/nixpkgs/archive/master.tar.gz
tells Nix to download and use the current contents of the
master
branch in thenixpkgs
repository.The URLs of the tarballs from the official
nixos.org
channels (see the manual page fornix-channel
) can be abbreviated aschannel:<channel-name>
. For instance, the following two flags are equivalent:-I nixpkgs=channel:nixos-21.05 -I nixpkgs=https://nixos.org/channels/nixos-21.05/nixexprs.tar.xz
You can also fetch source trees using flake URLs and add them to the search path. For instance,
-I nixpkgs=flake:nixpkgs
specifies that the prefix
nixpkgs
shall refer to the source tree downloaded from thenixpkgs
entry in the flake registry. Similarly,-I nixpkgs=flake:github:NixOS/nixpkgs/nixos-22.05
makes
<nixpkgs>
refer to a particular branch of theNixOS/nixpkgs
repository on GitHub. -
--override-flake
original-ref resolved-refOverride the flake registries, redirecting original-ref to resolved-ref.
Common flake-related options:
-
Commit changes to the flake's lock file.
-
--inputs-from
flake-urlUse the inputs of the specified flake as registry entries.
-
Don't allow lookups in the flake registries. This option is deprecated; use
--no-use-registries
. -
Do not allow any updates to the flake's lock file.
-
Do not write the flake's newly generated lock file.
-
--output-lock-file
flake-lock-pathWrite the given lock file instead of
flake.lock
within the top-level flake. -
--override-input
input-path flake-urlOverride a specific flake input (e.g.
dwarffs/nixpkgs
). This implies--no-write-lock-file
. -
Recreate the flake's lock file from scratch.
-
--reference-lock-file
flake-lock-pathRead the given lock file instead of
flake.lock
within the top-level flake. -
--update-input
input-pathUpdate a specific flake input (ignoring its previous entry in the lock file).
Logging-related options:
-
Set the logging verbosity level to 'debug'.
-
--log-format
formatSet the format of log output; one of
raw
,internal-json
,bar
orbar-with-logs
. -
--print-build-logs
/-L
Print full build logs on standard error.
-
Decrease the logging verbosity level.
-
--verbose
/-v
Increase the logging verbosity level.
Miscellaneous global options:
-
Show usage information.
-
Disable substituters and consider all previously downloaded files up-to-date.
-
--option
name valueSet the Nix configuration setting name to value (overriding
nix.conf
). -
Consider all previously downloaded files out-of-date.
-
During evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.
-
Show version information.
Options that change the interpretation of installables:
-
Apply the operation to every store path.
-
Operate on the store derivation rather than its outputs.
-
--expr
exprInterpret installables as attribute paths relative to the Nix expression expr.
-
--file
/-f
fileInterpret 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. Implies
--impure
. -
--recursive
/-r
Apply operation to closure of the specified paths.
Options to override configuration settings:
-
Enable the
accept-flake-config
setting. -
--access-tokens
valueSet the
access-tokens
setting. -
Enable the
allow-dirty
setting. -
--allow-import-from-derivation
Enable the
allow-import-from-derivation
setting. -
Enable the
allow-new-privileges
setting. -
Enable the
allow-symlinked-store
setting. -
--allow-unsafe-native-code-during-evaluation
Enable the
allow-unsafe-native-code-during-evaluation
setting. -
--allowed-impure-host-deps
valueSet the
allowed-impure-host-deps
setting. -
--allowed-uris
valueSet the
allowed-uris
setting. -
--allowed-users
valueSet the
allowed-users
setting. -
Enable the
auto-allocate-uids
setting. -
Enable the
auto-optimise-store
setting. -
--bash-prompt
valueSet the
bash-prompt
setting. -
--bash-prompt-prefix
valueSet the
bash-prompt-prefix
setting. -
--bash-prompt-suffix
valueSet the
bash-prompt-suffix
setting. -
--build-hook
valueSet the
build-hook
setting. -
--build-poll-interval
valueSet the
build-poll-interval
setting. -
--build-users-group
valueSet the
build-users-group
setting. -
--builders
valueSet the
builders
setting. -
Enable the
builders-use-substitutes
setting. -
--commit-lockfile-summary
valueSet the
commit-lockfile-summary
setting. -
Enable the
compress-build-log
setting. -
--connect-timeout
valueSet the
connect-timeout
setting. -
--cores
valueSet the
cores
setting. -
--diff-hook
valueSet the
diff-hook
setting. -
--download-attempts
valueSet the
download-attempts
setting. -
--download-speed
valueSet the
download-speed
setting. -
Enable the
eval-cache
setting. -
--experimental-features
valueSet the
experimental-features
setting. -
--extra-access-tokens
valueAppend to the
access-tokens
setting. -
--extra-allowed-impure-host-deps
valueAppend to the
allowed-impure-host-deps
setting. -
--extra-allowed-uris
valueAppend to the
allowed-uris
setting. -
--extra-allowed-users
valueAppend to the
allowed-users
setting. -
--extra-build-hook
valueAppend to the
build-hook
setting. -
--extra-experimental-features
valueAppend to the
experimental-features
setting. -
--extra-extra-platforms
valueAppend to the
extra-platforms
setting. -
--extra-hashed-mirrors
valueAppend to the
hashed-mirrors
setting. -
--extra-ignored-acls
valueAppend to the
ignored-acls
setting. -
--extra-nix-path
valueAppend to the
nix-path
setting. -
--extra-platforms
valueSet the
extra-platforms
setting. -
--extra-plugin-files
valueAppend to the
plugin-files
setting. -
--extra-sandbox-paths
valueAppend to the
sandbox-paths
setting. -
--extra-secret-key-files
valueAppend to the
secret-key-files
setting. -
--extra-substituters
valueAppend to the
substituters
setting. -
--extra-system-features
valueAppend to the
system-features
setting. -
--extra-trusted-public-keys
valueAppend to the
trusted-public-keys
setting. -
--extra-trusted-substituters
valueAppend to the
trusted-substituters
setting. -
--extra-trusted-users
valueAppend to the
trusted-users
setting. -
Enable the
fallback
setting. -
Enable the
filter-syscalls
setting. -
--flake-registry
valueSet the
flake-registry
setting. -
Enable the
fsync-metadata
setting. -
--gc-reserved-space
valueSet the
gc-reserved-space
setting. -
--hashed-mirrors
valueSet the
hashed-mirrors
setting. -
--http-connections
valueSet the
http-connections
setting. -
Enable the
http2
setting. -
--id-count
valueSet the
id-count
setting. -
Enable the
ignore-try
setting. -
--ignored-acls
valueSet the
ignored-acls
setting. -
Enable the
impersonate-linux-26
setting. -
Enable the
keep-build-log
setting. -
Enable the
keep-derivations
setting. -
Enable the
keep-env-derivations
setting. -
Enable the
keep-failed
setting. -
Enable the
keep-going
setting. -
Enable the
keep-outputs
setting. -
--log-lines
valueSet the
log-lines
setting. -
--max-build-log-size
valueSet the
max-build-log-size
setting. -
--max-free
valueSet the
max-free
setting. -
--max-jobs
valueSet the
max-jobs
setting. -
--max-silent-time
valueSet the
max-silent-time
setting. -
--max-substitution-jobs
valueSet the
max-substitution-jobs
setting. -
--min-free
valueSet the
min-free
setting. -
--min-free-check-interval
valueSet the
min-free-check-interval
setting. -
--nar-buffer-size
valueSet the
nar-buffer-size
setting. -
--narinfo-cache-negative-ttl
valueSet the
narinfo-cache-negative-ttl
setting. -
--narinfo-cache-positive-ttl
valueSet the
narinfo-cache-positive-ttl
setting. -
--netrc-file
valueSet the
netrc-file
setting. -
--nix-path
valueSet the
nix-path
setting. -
Disable the
accept-flake-config
setting. -
Disable the
allow-dirty
setting. -
--no-allow-import-from-derivation
Disable the
allow-import-from-derivation
setting. -
Disable the
allow-new-privileges
setting. -
Disable the
allow-symlinked-store
setting. -
--no-allow-unsafe-native-code-during-evaluation
Disable the
allow-unsafe-native-code-during-evaluation
setting. -
Disable the
auto-allocate-uids
setting. -
Disable the
auto-optimise-store
setting. -
Disable the
builders-use-substitutes
setting. -
Disable the
compress-build-log
setting. -
Disable the
eval-cache
setting. -
Disable the
fallback
setting. -
Disable the
filter-syscalls
setting. -
Disable the
fsync-metadata
setting. -
Disable the
http2
setting. -
Disable the
ignore-try
setting. -
Disable the
impersonate-linux-26
setting. -
Disable the
keep-build-log
setting. -
Disable the
keep-derivations
setting. -
Disable the
keep-env-derivations
setting. -
Disable the
keep-failed
setting. -
Disable the
keep-going
setting. -
Disable the
keep-outputs
setting. -
Disable the
preallocate-contents
setting. -
Disable the
print-missing
setting. -
Disable the
pure-eval
setting. -
--no-require-drop-supplementary-groups
Disable the
require-drop-supplementary-groups
setting. -
Disable the
require-sigs
setting. -
Disable the
restrict-eval
setting. -
Disable the
run-diff-hook
setting. -
Disable sandboxing.
-
Disable the
sandbox-fallback
setting. -
Disable the
show-trace
setting. -
Disable the
substitute
setting. -
Disable the
sync-before-registering
setting. -
Disable the
trace-function-calls
setting. -
Disable the
trace-verbose
setting. -
Disable the
use-case-hack
setting. -
Disable the
use-cgroups
setting. -
Disable the
use-registries
setting. -
Disable the
use-sqlite-wal
setting. -
Disable the
use-xdg-base-directories
setting. -
Disable the
warn-dirty
setting. -
--plugin-files
valueSet the
plugin-files
setting. -
--post-build-hook
valueSet the
post-build-hook
setting. -
--pre-build-hook
valueSet the
pre-build-hook
setting. -
Enable the
preallocate-contents
setting. -
Enable the
print-missing
setting. -
Enable the
pure-eval
setting. -
Enable sandboxing, but allow builds to disable it.
-
--require-drop-supplementary-groups
Enable the
require-drop-supplementary-groups
setting. -
Enable the
require-sigs
setting. -
Enable the
restrict-eval
setting. -
Enable the
run-diff-hook
setting. -
Enable sandboxing.
-
--sandbox-build-dir
valueSet the
sandbox-build-dir
setting. -
--sandbox-dev-shm-size
valueSet the
sandbox-dev-shm-size
setting. -
Enable the
sandbox-fallback
setting. -
--sandbox-paths
valueSet the
sandbox-paths
setting. -
--secret-key-files
valueSet the
secret-key-files
setting. -
Enable the
show-trace
setting. -
--ssl-cert-file
valueSet the
ssl-cert-file
setting. -
--stalled-download-timeout
valueSet the
stalled-download-timeout
setting. -
--start-id
valueSet the
start-id
setting. -
--store
valueSet the
store
setting. -
Enable the
substitute
setting. -
--substituters
valueSet the
substituters
setting. -
Enable the
sync-before-registering
setting. -
--system
valueSet the
system
setting. -
--system-features
valueSet the
system-features
setting. -
--tarball-ttl
valueSet the
tarball-ttl
setting. -
--timeout
valueSet the
timeout
setting. -
Enable the
trace-function-calls
setting. -
Enable the
trace-verbose
setting. -
--trusted-public-keys
valueSet the
trusted-public-keys
setting. -
--trusted-substituters
valueSet the
trusted-substituters
setting. -
--trusted-users
valueSet the
trusted-users
setting. -
Enable the
use-case-hack
setting. -
Enable the
use-cgroups
setting. -
Enable the
use-registries
setting. -
Enable the
use-sqlite-wal
setting. -
Enable the
use-xdg-base-directories
setting. -
--user-agent-suffix
valueSet the
user-agent-suffix
setting. -
Enable the
warn-dirty
setting.