Warning
This program is experimental ⟨@docroot@/development/experimental-features.md#xp-feature-nix-command⟩ and its interface is subject to change.
Name
nix flake lock - create missing lock file entries
Synopsis
nix flake lock [option…] flake-url
Examples
- •
-
Create the lock file for the flake in the current directory:
# nix flake lock warning: creating lock file '/home/myself/repos/testflake/flake.lock': • Added input 'nix': 'github:NixOS/nix/9fab14adbc3810d5cc1f88672fde1eee4358405c' (2023-06-28) • Added input 'nixpkgs': 'github:NixOS/nixpkgs/3d2d8f281a27d466fa54b469b5993f7dde198375' (2023-06-30)
- •
-
Add missing inputs to the lock file for a flake in a different directory:
# nix flake lock ~/repos/another warning: updating lock file '/home/myself/repos/another/flake.lock': • Added input 'nixpkgs': 'github:NixOS/nixpkgs/3d2d8f281a27d466fa54b469b5993f7dde198375' (2023-06-30)
-
Note
-
When trying to refer to a flake in a subdirectory, write
./anotherinstead ofanother. Otherwise Nix will try to look up the flake in the registry.
Description
This command updates the lock file of a flake (flake.lock) so that it contains an up-to-date lock for every flake input specified in flake.nix. Lock file entries are aready up-to-date are not modified.
If you want to update existing lock entries, use nix flake update ⟨@docroot@/command-ref/new-cli/nix3-flake-update.md⟩
Options
Common evaluation options
- •
-
--arg⟨#opt-arg⟩ name expr
-
Pass the value expr as the argument name to Nix functions.
- •
-
--arg-from-file⟨#opt-arg-from-file⟩ name path
-
Pass the contents of file path as the argument name to Nix functions.
- •
-
--arg-from-stdin⟨#opt-arg-from-stdin⟩ name
-
Pass the contents of stdin as the argument name to Nix functions.
- •
-
--argstr⟨#opt-argstr⟩ name string
-
Pass the string string as the argument name to Nix functions.
- •
-
--debugger⟨#opt-debugger⟩
-
Start an interactive environment if evaluation fails.
- •
-
--eval-store⟨#opt-eval-store⟩ store-url
-
The URL of the Nix store ⟨@docroot@/store/types/index.md#store-url-format⟩ to use for evaluation, i.e. to store derivations (
.drvfiles) and inputs referenced by them.
- •
-
--impure⟨#opt-impure⟩
-
Allow access to mutable paths and repositories.
- •
-
--include⟨#opt-include⟩ /-Ipath
-
Add path to search path entries used to resolve lookup paths ⟨@docroot@/language/constructs/lookup-path.md⟩
-
This option may be given multiple times.
-
Paths added through
-Itake precedence over thenix-pathconfiguration setting ⟨@docroot@/command-ref/conf-file.md#conf-nix-path⟩ and theNIX_PATHenvironment variable ⟨@docroot@/command-ref/env-common.md#env-NIX_PATH⟩\c .
- •
-
--override-flake⟨#opt-override-flake⟩ original-ref resolved-ref
-
Override the flake registries, redirecting original-ref to resolved-ref.
Common flake-related options
- •
-
--commit-lock-file⟨#opt-commit-lock-file⟩
-
Commit changes to the flake’s lock file.
- •
-
--inputs-from⟨#opt-inputs-from⟩ flake-url
-
Use the inputs of the specified flake as registry entries.
- •
-
--no-registries⟨#opt-no-registries⟩
-
Don’t allow lookups in the flake registries.
-
DEPRECATED
-
Use
--no-use-registries⟨@docroot@/command-ref/conf-file.md#conf-use-registries⟩ instead.
-
- •
-
--no-update-lock-file⟨#opt-no-update-lock-file⟩
-
Do not allow any updates to the flake’s lock file.
- •
-
--output-lock-file⟨#opt-output-lock-file⟩ flake-lock-path
-
Write the given lock file instead of
flake.lockwithin the top-level flake.
- •
-
--override-input⟨#opt-override-input⟩ input-path flake-url
-
Override a specific flake input (e.g.
dwarffs/nixpkgs). This implies--no-write-lock-file.
- •
-
--recreate-lock-file⟨#opt-recreate-lock-file⟩
-
Recreate the flake’s lock file from scratch.
-
DEPRECATED
-
Use
nix flake update⟨@docroot@/command-ref/new-cli/nix3-flake-update.md⟩ instead.
-
- •
-
--reference-lock-file⟨#opt-reference-lock-file⟩ flake-lock-path
-
Read the given lock file instead of
flake.lockwithin the top-level flake.
- •
-
--update-input⟨#opt-update-input⟩ input-path
-
Update a specific flake input (ignoring its previous entry in the lock file).
-
DEPRECATED
-
Use
nix flake update⟨@docroot@/command-ref/new-cli/nix3-flake-update.md⟩ instead.
-
Logging-related options
- •
-
--debug⟨#opt-debug⟩
-
Set the logging verbosity level to ‘debug’.
- •
-
--log-format⟨#opt-log-format⟩ format
-
Set the format of log output; one of
raw,internal-json,barorbar-with-logs.
- •
-
--print-build-logs⟨#opt-print-build-logs⟩ /-L
-
Print full build logs on standard error.
- •
-
--quiet⟨#opt-quiet⟩
-
Decrease the logging verbosity level.
- •
-
--verbose⟨#opt-verbose⟩ /-v
-
Increase the logging verbosity level.
Miscellaneous global options
- •
-
--help⟨#opt-help⟩
-
Show usage information.
- •
-
--offline⟨#opt-offline⟩
-
Disable substituters and consider all previously downloaded files up-to-date.
- •
-
--option⟨#opt-option⟩ name value
-
Set the Nix configuration setting name to value (overriding
nix.conf).
- •
-
--refresh⟨#opt-refresh⟩
-
Consider all previously downloaded files out-of-date.
- •
-
--repair⟨#opt-repair⟩
-
During evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.
- •
-
--version⟨#opt-version⟩
-
Show version information.
Note
See
man nix.conf⟨@docroot@/command-ref/conf-file.md#command-line-flags⟩ for overriding configuration settings with command line flags.