nix-super/src/nix/flake-update.md
2020-12-23 18:26:40 +01:00

1.5 KiB

R""(

Examples

  • Update the nixpkgs and nix inputs of the flake in the current directory:

    # nix flake update --update-input nixpkgs --update-input nix
    * Updated 'nix': 'github:NixOS/nix/9fab14adbc3810d5cc1f88672fde1eee4358405c' -> 'github:NixOS/nix/8927cba62f5afb33b01016d5c4f7f8b7d0adde3c'
    * Updated 'nixpkgs': 'github:NixOS/nixpkgs/3d2d8f281a27d466fa54b469b5993f7dde198375' -> 'github:NixOS/nixpkgs/a3a3dda3bacf61e8a39258a0ed9c924eeca8e293'
    
  • Recreate the lock file (i.e. update all inputs) and commit the new lock file:

    # nix flake update --recreate-lock-file --commit-lock-file
    warning: committed new revision '158bcbd9d6cc08ab859c0810186c1beebc982aad'
    

Description

This command updates the lock file of a flake (flake.lock) so that it contains a lock for every flake input specified in flake.nix. Note that every command that operates on a flake will also update the lock file if needed, and supports the same flags. Therefore,

# nix flake update --update-input nixpkgs
# nix build

is equivalent to:

# nix build --update-input nixpkgs

Thus, this command is only useful if you want to update the lock file separately from any other action such as building.

Note

This command does not update locks that are already present unless you explicitly ask for it using --update-input or --recreate-lock-file. Thus, if the lock file already has locks for every input, then nix flake update (without arguments) does nothing.

)""