Warning
This program is experimental and its interface is subject to change.
Name
nix derivation show - show the contents of a store derivation
Synopsis
nix derivation show [option...] installables...
Examples
- 
Show the store derivation that results from evaluating the Hello package: # nix derivation show nixpkgs#hello { "/nix/store/s6rn4jz1sin56rf4qj5b5v8jxjm32hlk-hello-2.10.drv": { … } }
- 
Show the full derivation graph (if available) that produced your NixOS system: # nix derivation show -r /run/current-system
- 
Print all files fetched using fetchurlby Firefox's dependency graph:# nix derivation show -r nixpkgs#firefox \ | jq -r '.[] | select(.outputs.out.hash and .env.urls) | .env.urls' \ | uniq | sortNote that .outputs.out.hashselects fixed-output derivations (derivations that produce output with a specified content hash), while.env.urlsselects derivations with aurlsattribute.
Description
This command prints on standard output a JSON representation of the store derivations to which installables evaluate.
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.
By default, this command only shows top-level derivations, but with
--recursive, it also shows their dependencies.
The JSON output is a JSON object whose keys are the store paths of the derivations, and whose values are a JSON object with the following fields:
- 
name: The name of the derivation. This is used when calculating the store paths of the derivation's outputs.
- 
outputs: Information about the output paths of the derivation. This is a JSON object with one member per output, where the key is the output name and the value is a JSON object with these fields:- path: The output path.
- hashAlgo: For fixed-output derivations, the hashing algorithm (e.g.- sha256), optionally prefixed by- r:if- hashdenotes a NAR hash rather than a flat file hash.
- hash: For fixed-output derivations, the expected content hash in base-16.
 Example: "outputs": { "out": { "path": "/nix/store/2543j7c6jn75blc3drf4g5vhb1rhdq29-source", "hashAlgo": "r:sha256", "hash": "6fc80dcc62179dbc12fc0b5881275898f93444833d21b89dfe5f7fbcbb1d0d62" } }
- 
inputSrcs: A list of store paths on which this derivation depends.
- 
inputDrvs: A JSON object specifying the derivations on which this derivation depends, and what outputs of those derivations. For example,"inputDrvs": { "/nix/store/6lkh5yi7nlb7l6dr8fljlli5zfd9hq58-curl-7.73.0.drv": ["dev"], "/nix/store/fn3kgnfzl5dzym26j8g907gq3kbm8bfh-unzip-6.0.drv": ["out"] }specifies that this derivation depends on the devoutput ofcurl, and theoutoutput ofunzip.
- 
system: The system type on which this derivation is to be built (e.g.x86_64-linux).
- 
builder: The absolute path of the program to be executed to run the build. Typically this is thebashshell (e.g./nix/store/r3j288vpmczbl500w6zz89gyfa4nr0b1-bash-4.4-p23/bin/bash).
- 
args: The command-line arguments passed to thebuilder.
- 
env: The environment passed to thebuilder.
Options
- 
--recursive/-rInclude the dependencies of the specified derivations.
- 
--stdinRead installables from the standard input. No default installable applied.
Common evaluation options:
- 
--argname expr Pass the value expr as the argument name to Nix functions.
- 
--argstrname string Pass the string string as the argument name to Nix functions.
- 
--debuggerStart an interactive environment if evaluation fails.
- 
--eval-storestore-url The URL of the Nix store to use for evaluation, i.e. to store derivations (.drvfiles) and inputs referenced by them.
- 
--impureAllow access to mutable paths and repositories.
- 
--include/-Ipath Add path to the Nix search path. The Nix search path is initialized from the colon-separatedNIX_PATHenvironment 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/nixoswill cause Nix to look for paths relative to /home/eelco/Devand/etc/nixos, in that order. This is equivalent to setting theNIX_PATHenvironment variable to/home/eelco/Dev:/etc/nixosIt is also possible to match paths against a prefix. For example, passing -I nixpkgs=/home/eelco/Dev/nixpkgs-branch -I /etc/nixoswill cause Nix to search for <nixpkgs/path>in/home/eelco/Dev/nixpkgs-branch/pathand/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.gztells Nix to download and use the current contents of the masterbranch in thenixpkgsrepository.The URLs of the tarballs from the official nixos.orgchannels (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.xzYou can also fetch source trees using flake URLs and add them to the search path. For instance, -I nixpkgs=flake:nixpkgsspecifies that the prefix nixpkgsshall refer to the source tree downloaded from thenixpkgsentry in the flake registry. Similarly,-I nixpkgs=flake:github:NixOS/nixpkgs/nixos-22.05makes <nixpkgs>refer to a particular branch of theNixOS/nixpkgsrepository on GitHub.
- 
--override-flakeoriginal-ref resolved-ref Override the flake registries, redirecting original-ref to resolved-ref.
Common flake-related options:
- 
--commit-lock-fileCommit changes to the flake's lock file.
- 
--inputs-fromflake-url Use the inputs of the specified flake as registry entries.
- 
--no-registriesDon't allow lookups in the flake registries. This option is deprecated; use--no-use-registries.
- 
--no-update-lock-fileDo not allow any updates to the flake's lock file.
- 
--no-write-lock-fileDo not write the flake's newly generated lock file.
- 
--output-lock-fileflake-lock-path Write the given lock file instead offlake.lockwithin the top-level flake.
- 
--override-inputinput-path flake-url Override a specific flake input (e.g.dwarffs/nixpkgs). This implies--no-write-lock-file.
- 
--recreate-lock-fileRecreate the flake's lock file from scratch.
- 
--reference-lock-fileflake-lock-path Read the given lock file instead offlake.lockwithin the top-level flake.
- 
--update-inputinput-path Update a specific flake input (ignoring its previous entry in the lock file).
Logging-related options:
- 
--debugSet the logging verbosity level to 'debug'.
- 
--log-formatformat Set the format of log output; one ofraw,internal-json,barorbar-with-logs.
- 
--print-build-logs/-LPrint full build logs on standard error.
- 
--quietDecrease the logging verbosity level.
- 
--verbose/-vIncrease the logging verbosity level.
Miscellaneous global options:
- 
--helpShow usage information.
- 
--offlineDisable substituters and consider all previously downloaded files up-to-date.
- 
--optionname value Set the Nix configuration setting name to value (overridingnix.conf).
- 
--refreshConsider all previously downloaded files out-of-date.
- 
--repairDuring evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.
- 
--versionShow version information.
Options that change the interpretation of installables:
- 
--exprexpr Interpret installables as attribute paths relative to the Nix expression expr.
- 
--file/-ffile 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. Implies--impure.
Options to override configuration settings:
- 
--accept-flake-configEnable theaccept-flake-configsetting.
- 
--access-tokensvalue Set theaccess-tokenssetting.
- 
--allow-dirtyEnable theallow-dirtysetting.
- 
--allow-import-from-derivationEnable theallow-import-from-derivationsetting.
- 
--allow-new-privilegesEnable theallow-new-privilegessetting.
- 
--allow-symlinked-storeEnable theallow-symlinked-storesetting.
- 
--allow-unsafe-native-code-during-evaluationEnable theallow-unsafe-native-code-during-evaluationsetting.
- 
--allowed-impure-host-depsvalue Set theallowed-impure-host-depssetting.
- 
--allowed-urisvalue Set theallowed-urissetting.
- 
--allowed-usersvalue Set theallowed-userssetting.
- 
--auto-allocate-uidsEnable theauto-allocate-uidssetting.
- 
--auto-optimise-storeEnable theauto-optimise-storesetting.
- 
--bash-promptvalue Set thebash-promptsetting.
- 
--bash-prompt-prefixvalue Set thebash-prompt-prefixsetting.
- 
--bash-prompt-suffixvalue Set thebash-prompt-suffixsetting.
- 
--build-hookvalue Set thebuild-hooksetting.
- 
--build-poll-intervalvalue Set thebuild-poll-intervalsetting.
- 
--build-users-groupvalue Set thebuild-users-groupsetting.
- 
--buildersvalue Set thebuilderssetting.
- 
--builders-use-substitutesEnable thebuilders-use-substitutessetting.
- 
--commit-lockfile-summaryvalue Set thecommit-lockfile-summarysetting.
- 
--compress-build-logEnable thecompress-build-logsetting.
- 
--connect-timeoutvalue Set theconnect-timeoutsetting.
- 
--coresvalue Set thecoressetting.
- 
--diff-hookvalue Set thediff-hooksetting.
- 
--download-attemptsvalue Set thedownload-attemptssetting.
- 
--download-speedvalue Set thedownload-speedsetting.
- 
--eval-cacheEnable theeval-cachesetting.
- 
--experimental-featuresvalue Set theexperimental-featuressetting.
- 
--extra-access-tokensvalue Append to theaccess-tokenssetting.
- 
--extra-allowed-impure-host-depsvalue Append to theallowed-impure-host-depssetting.
- 
--extra-allowed-urisvalue Append to theallowed-urissetting.
- 
--extra-allowed-usersvalue Append to theallowed-userssetting.
- 
--extra-build-hookvalue Append to thebuild-hooksetting.
- 
--extra-experimental-featuresvalue Append to theexperimental-featuressetting.
- 
--extra-extra-platformsvalue Append to theextra-platformssetting.
- 
--extra-hashed-mirrorsvalue Append to thehashed-mirrorssetting.
- 
--extra-ignored-aclsvalue Append to theignored-aclssetting.
- 
--extra-nix-pathvalue Append to thenix-pathsetting.
- 
--extra-platformsvalue Set theextra-platformssetting.
- 
--extra-plugin-filesvalue Append to theplugin-filessetting.
- 
--extra-sandbox-pathsvalue Append to thesandbox-pathssetting.
- 
--extra-secret-key-filesvalue Append to thesecret-key-filessetting.
- 
--extra-substitutersvalue Append to thesubstituterssetting.
- 
--extra-system-featuresvalue Append to thesystem-featuressetting.
- 
--extra-trusted-public-keysvalue Append to thetrusted-public-keyssetting.
- 
--extra-trusted-substitutersvalue Append to thetrusted-substituterssetting.
- 
--extra-trusted-usersvalue Append to thetrusted-userssetting.
- 
--fallbackEnable thefallbacksetting.
- 
--filter-syscallsEnable thefilter-syscallssetting.
- 
--flake-registryvalue Set theflake-registrysetting.
- 
--fsync-metadataEnable thefsync-metadatasetting.
- 
--gc-reserved-spacevalue Set thegc-reserved-spacesetting.
- 
--hashed-mirrorsvalue Set thehashed-mirrorssetting.
- 
--http-connectionsvalue Set thehttp-connectionssetting.
- 
--http2Enable thehttp2setting.
- 
--id-countvalue Set theid-countsetting.
- 
--ignore-tryEnable theignore-trysetting.
- 
--ignored-aclsvalue Set theignored-aclssetting.
- 
--impersonate-linux-26Enable theimpersonate-linux-26setting.
- 
--keep-build-logEnable thekeep-build-logsetting.
- 
--keep-derivationsEnable thekeep-derivationssetting.
- 
--keep-env-derivationsEnable thekeep-env-derivationssetting.
- 
--keep-failedEnable thekeep-failedsetting.
- 
--keep-goingEnable thekeep-goingsetting.
- 
--keep-outputsEnable thekeep-outputssetting.
- 
--log-linesvalue Set thelog-linessetting.
- 
--max-build-log-sizevalue Set themax-build-log-sizesetting.
- 
--max-freevalue Set themax-freesetting.
- 
--max-jobsvalue Set themax-jobssetting.
- 
--max-silent-timevalue Set themax-silent-timesetting.
- 
--max-substitution-jobsvalue Set themax-substitution-jobssetting.
- 
--min-freevalue Set themin-freesetting.
- 
--min-free-check-intervalvalue Set themin-free-check-intervalsetting.
- 
--nar-buffer-sizevalue Set thenar-buffer-sizesetting.
- 
--narinfo-cache-negative-ttlvalue Set thenarinfo-cache-negative-ttlsetting.
- 
--narinfo-cache-positive-ttlvalue Set thenarinfo-cache-positive-ttlsetting.
- 
--netrc-filevalue Set thenetrc-filesetting.
- 
--nix-pathvalue Set thenix-pathsetting.
- 
--no-accept-flake-configDisable theaccept-flake-configsetting.
- 
--no-allow-dirtyDisable theallow-dirtysetting.
- 
--no-allow-import-from-derivationDisable theallow-import-from-derivationsetting.
- 
--no-allow-new-privilegesDisable theallow-new-privilegessetting.
- 
--no-allow-symlinked-storeDisable theallow-symlinked-storesetting.
- 
--no-allow-unsafe-native-code-during-evaluationDisable theallow-unsafe-native-code-during-evaluationsetting.
- 
--no-auto-allocate-uidsDisable theauto-allocate-uidssetting.
- 
--no-auto-optimise-storeDisable theauto-optimise-storesetting.
- 
--no-builders-use-substitutesDisable thebuilders-use-substitutessetting.
- 
--no-compress-build-logDisable thecompress-build-logsetting.
- 
--no-eval-cacheDisable theeval-cachesetting.
- 
--no-fallbackDisable thefallbacksetting.
- 
--no-filter-syscallsDisable thefilter-syscallssetting.
- 
--no-fsync-metadataDisable thefsync-metadatasetting.
- 
--no-http2Disable thehttp2setting.
- 
--no-ignore-tryDisable theignore-trysetting.
- 
--no-impersonate-linux-26Disable theimpersonate-linux-26setting.
- 
--no-keep-build-logDisable thekeep-build-logsetting.
- 
--no-keep-derivationsDisable thekeep-derivationssetting.
- 
--no-keep-env-derivationsDisable thekeep-env-derivationssetting.
- 
--no-keep-failedDisable thekeep-failedsetting.
- 
--no-keep-goingDisable thekeep-goingsetting.
- 
--no-keep-outputsDisable thekeep-outputssetting.
- 
--no-preallocate-contentsDisable thepreallocate-contentssetting.
- 
--no-print-missingDisable theprint-missingsetting.
- 
--no-pure-evalDisable thepure-evalsetting.
- 
--no-require-drop-supplementary-groupsDisable therequire-drop-supplementary-groupssetting.
- 
--no-require-sigsDisable therequire-sigssetting.
- 
--no-restrict-evalDisable therestrict-evalsetting.
- 
--no-run-diff-hookDisable therun-diff-hooksetting.
- 
--no-sandboxDisable sandboxing.
- 
--no-sandbox-fallbackDisable thesandbox-fallbacksetting.
- 
--no-show-traceDisable theshow-tracesetting.
- 
--no-substituteDisable thesubstitutesetting.
- 
--no-sync-before-registeringDisable thesync-before-registeringsetting.
- 
--no-trace-function-callsDisable thetrace-function-callssetting.
- 
--no-trace-verboseDisable thetrace-verbosesetting.
- 
--no-use-case-hackDisable theuse-case-hacksetting.
- 
--no-use-cgroupsDisable theuse-cgroupssetting.
- 
--no-use-registriesDisable theuse-registriessetting.
- 
--no-use-sqlite-walDisable theuse-sqlite-walsetting.
- 
--no-use-xdg-base-directoriesDisable theuse-xdg-base-directoriessetting.
- 
--no-warn-dirtyDisable thewarn-dirtysetting.
- 
--plugin-filesvalue Set theplugin-filessetting.
- 
--post-build-hookvalue Set thepost-build-hooksetting.
- 
--pre-build-hookvalue Set thepre-build-hooksetting.
- 
--preallocate-contentsEnable thepreallocate-contentssetting.
- 
--print-missingEnable theprint-missingsetting.
- 
--pure-evalEnable thepure-evalsetting.
- 
--relaxed-sandboxEnable sandboxing, but allow builds to disable it.
- 
--require-drop-supplementary-groupsEnable therequire-drop-supplementary-groupssetting.
- 
--require-sigsEnable therequire-sigssetting.
- 
--restrict-evalEnable therestrict-evalsetting.
- 
--run-diff-hookEnable therun-diff-hooksetting.
- 
--sandboxEnable sandboxing.
- 
--sandbox-build-dirvalue Set thesandbox-build-dirsetting.
- 
--sandbox-dev-shm-sizevalue Set thesandbox-dev-shm-sizesetting.
- 
--sandbox-fallbackEnable thesandbox-fallbacksetting.
- 
--sandbox-pathsvalue Set thesandbox-pathssetting.
- 
--secret-key-filesvalue Set thesecret-key-filessetting.
- 
--show-traceEnable theshow-tracesetting.
- 
--ssl-cert-filevalue Set thessl-cert-filesetting.
- 
--stalled-download-timeoutvalue Set thestalled-download-timeoutsetting.
- 
--start-idvalue Set thestart-idsetting.
- 
--storevalue Set thestoresetting.
- 
--substituteEnable thesubstitutesetting.
- 
--substitutersvalue Set thesubstituterssetting.
- 
--sync-before-registeringEnable thesync-before-registeringsetting.
- 
--systemvalue Set thesystemsetting.
- 
--system-featuresvalue Set thesystem-featuressetting.
- 
--tarball-ttlvalue Set thetarball-ttlsetting.
- 
--timeoutvalue Set thetimeoutsetting.
- 
--trace-function-callsEnable thetrace-function-callssetting.
- 
--trace-verboseEnable thetrace-verbosesetting.
- 
--trusted-public-keysvalue Set thetrusted-public-keyssetting.
- 
--trusted-substitutersvalue Set thetrusted-substituterssetting.
- 
--trusted-usersvalue Set thetrusted-userssetting.
- 
--use-case-hackEnable theuse-case-hacksetting.
- 
--use-cgroupsEnable theuse-cgroupssetting.
- 
--use-registriesEnable theuse-registriessetting.
- 
--use-sqlite-walEnable theuse-sqlite-walsetting.
- 
--use-xdg-base-directoriesEnable theuse-xdg-base-directoriessetting.
- 
--user-agent-suffixvalue Set theuser-agent-suffixsetting.
- 
--warn-dirtyEnable thewarn-dirtysetting.