nix3-copy - Man Page
copy paths between Nix stores
Warning
This program is experimental and its interface is subject to change.
Synopsis
nix copy [option…] installables…
Examples
- Copy Firefox from the local store to a binary cache in
/tmp/cache:
# nix copy --to file:///tmp/cache $(type -p firefox)
Note the file:// - without this, the destination is a chroot store, not a binary cache.
- Copy all store paths from a local binary cache in
/tmp/cacheto the local store:
# nix copy --all --from file:///tmp/cache
- Copy the entire current NixOS system closure to another machine via SSH:
# nix copy --substitute-on-destination --to ssh://server /run/current-system
The -s flag causes the remote machine to try to substitute missing store paths, which may be faster if the link between the local and remote machines is slower than the link between the remote machine and its substituters (e.g. https://cache.nixos.org).
- Copy a closure from another machine via SSH:
# nix copy --from ssh://server /nix/store/a6cnl93nk1wxnq84brbbwr6hxw9gp2w9-blender-2.79-rc2
- Copy Hello to a binary cache in an Amazon S3 bucket:
# nix copy --to s3://my-bucket?region=eu-west-1 nixpkgs#hello
or to an S3-compatible storage system:
# nix copy --to s3://my-bucket?region=eu-west-1&endpoint=example.com nixpkgs#hello
Note that this only works if Nix is built with AWS support.
- Copy a closure from
/nix/storeto the chroot store/tmp/nix/nix/store:
# nix copy --to /tmp/nix nixpkgs#hello --no-check-sigs
- Update the NixOS system profile to point to a closure copied from a remote machine:
# nix copy --from ssh://server \ --profile /nix/var/nix/profiles/system \ /nix/store/r14v3km89zm3prwsa521fab5kgzvfbw4-nixos-system-foobar-24.05.20240925.759537f
Description
nix copy copies store path closures between two Nix stores. The source store is specified using --from and the destination using --to. If one of these is omitted, it defaults to the local store.
Options
--fromstore-uriURL of the source Nix store.
--no-check-sigsDo not require that paths are signed by trusted keys.
--out-link/-opathCreate symlinks prefixed with path to the top-level store paths fetched from the source store.
--profilepathThe profile to operate on.
--stdinRead installables from the standard input. No default installable applied.
--substitute-on-destination/-sWhether to try substitutes on the destination store (only supported by SSH stores).
--tostore-uriURL of the destination Nix store.
Common evaluation options
--argname exprPass the value expr as the argument name to Nix functions.
--arg-from-filename pathPass the contents of file path as the argument name to Nix functions.
--arg-from-stdinnamePass the contents of stdin as the argument name to Nix functions.
--argstrname stringPass the string string as the argument name to Nix functions.
--debuggerStart an interactive environment if evaluation fails.
--eval-storestore-urlThe 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/-IpathAdd path to search path entries used to resolve lookup paths
This option may be given multiple times.
Paths added through
-Itake precedence over thenix-pathconfiguration setting and theNIX_PATHenvironment variable .--override-flakeoriginal-ref resolved-refOverride the flake registries, redirecting original-ref to resolved-ref.
Miscellaneous global options
--helpShow usage information.
--offlineDisable substituters and consider all previously downloaded files up-to-date.
--optionname valueSet the Nix configuration setting name to value (overriding
nix.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
--allApply the operation to every store path.
--derivationOperate on the store derivation rather than its outputs.
--exprexprInterpret installables as attribute paths relative to the Nix expression expr.
--file/-ffileInterpret 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.--no-recursiveApply operation to specified paths only.
Note
See
man nix.conffor overriding configuration settings with command line flags.