nix3-log(1)

πŸ’… nix3-log β€” general commands manual, but make it cute πŸ’…

⚠️ Warning ⚠️ bestie this one is experimental β€” the interface is subject to change, no cap. Don't build your whole personality around it.

✨ Name ✨

nix log β€” show the build log of the specified packages or paths, if available. That "if available" is doing a lot of heavy lifting, iykyk. 😭


🌸 Synopsis 🌸

nix log [option…] installable

πŸ“ Examples πŸ“

  • Get the build log of GNU Hello:
# nix log nixpkgs#hello
  • Get the build log of a specific store path:
# nix log /nix/store/vaph2hfdmnipqr90v6g5mcdn8h5p5iss-thunderbird-52.2.1
  • Get a build log from a specific binary cache:
# nix log --store https://cache.nixos.org nixpkgs#hello

Literal icons, each and every one. 🫢


πŸ¦‹ Description πŸ¦‹

So basically this command prints the log of a previous build of the installable, and it dumps it straight to standard output. Simple. Elevated. Main character behaviour. ✨

Nix goes looking for build logs in two places:

  • In the directory /nix/var/log/nix/drvs, which has the logs for derivations that were built locally. Homegrown logs, we love those. πŸ’–
  • In the binary caches listed in the substituters setting. Logs should be named <cache>/log/<store-path-base-name>, where <store-path-base-name> is the store path base name of a derivation β€” for example https://cache.nixos.org/log/dvmig8jgrdapvbyxb1rprckdmdqx08kv-hello-2.10.drv. And for non-derivation store paths, Nix will first try to figure out the deriver from the store object metadata. Detective work, but make it Nix. πŸ”

πŸ‘‘ Options πŸ‘‘

πŸ’œ 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 the 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. Girl help, it went wrong, let's poke at it. πŸ™ˆ
  • --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. Living dangerously, respectfully. πŸ”₯
  • --include, -I path β€” Add path to search path entries used to resolve lookup paths.

This option may be given multiple times. Yes, stack them up like bracelets. πŸŽ€

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. Committing, bestie, we're committing. πŸ’…
  • --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. Absolutely not. Locked in. πŸ”’
  • --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’. The tea is scalding. β˜•
  • --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. Shhh. 🀫
  • --verbose, -v β€” Increase the logging verbosity level. Tell me everything. πŸ‘€

⭐ Miscellaneous global options

  • --help β€” Show usage information.
  • --offline β€” Disable substituters and consider all previously downloaded files up-to-date. Touch grass mode: enabled. 🌱
  • --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. Healing era. 🩹
  • --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. πŸ“

That's the whole page, bestie β€” every flag present and accounted for, not one skipped, and the vibes immaculate. πŸ’–

This was nix3-log(1) from the General Commands Manual, and the footer signs off with nix3-log(1) one last time like a lil signature. Stay experimental, stay hydrated. πŸŽ€πŸ¦‹βœ¨

πŸ“¦ where this page comes from