Next: , Previous: , Up: Utilities   [Contents][Index]

9.13 Invoking guix copy

The guix copy command copies items from the store of one machine to that of another machine over a secure shell (SSH) connection25. For example, the following command copies the coreutils package, the user’s profile, and all their dependencies over to host, logged in as user:

guix copy --to=user@host \
          coreutils $(readlink -f ~/.guix-profile)

If some of the items to be copied are already present on host, they are not actually sent.

The command below retrieves libreoffice and gimp from host, assuming they are available there:

guix copy --from=host libreoffice gimp

The SSH connection is established using the Guile-SSH client, which is compatible with OpenSSH: it honors ~/.ssh/known_hosts and ~/.ssh/config, and uses the SSH agent for authentication.

The key used to sign items that are sent must be accepted by the remote machine. Likewise, the key used by the remote machine to sign items you are retrieving must be in /etc/guix/acl so it is accepted by your own daemon. See Invoking guix archive, for more information about store item authentication.

The general syntax is:

guix copy [--to=spec|--from=spec] items

You must always specify one of the following options:


Specify the host to send to or receive from. spec must be an SSH spec such as,, or

The items can be either package names, such as gimp, or store items, such as /gnu/store/…-idutils-4.6.

When specifying the name of a package to send, it is first built if needed, unless --dry-run was specified. Common build options are supported (see Common Build Options).



This command is available only when Guile-SSH was found. See Requirements, for details.

Next: Invoking guix container, Previous: Invoking guix challenge, Up: Utilities   [Contents][Index]