Next: , Previous: , Up: Package Management   [Contents][Index]

3.6 Invoking guix pull

Packages are installed or upgraded to the latest version available in the distribution currently available on your local machine. To update that distribution, along with the Guix tools, you must run guix pull: the command downloads the latest Guix source code and package descriptions, and deploys it. Source code is downloaded from a Git repository.

On completion, guix package will use packages and package versions from this just-retrieved copy of Guix. Not only that, but all the Guix commands and Scheme modules will also be taken from that latest version. New guix sub-commands added by the update also become available.

Any user can update their Guix copy using guix pull, and the effect is limited to the user who run guix pull. For instance, when user root runs guix pull, this has no effect on the version of Guix that user alice sees, and vice versa5.

The guix pull command is usually invoked with no arguments, but it supports the following options:


Produce verbose output, writing build logs to the standard error output.


Download Guix from the Git repository at url.

By default, the source is taken from its canonical Git repository at, for the stable branch of Guix. To use a different source, set the GUIX_PULL_URL environment variable.


Deploy commit, a valid Git commit ID represented as a hexadecimal string.


Deploy the tip of branch, the name of a Git branch available on the repository at url.


Use the bootstrap Guile to build the latest Guix. This option is only useful to Guix developers.

In addition, guix pull supports all the common build options (see Common Build Options).



Under the hood, guix pull updates the ~/.config/guix/latest symbolic link to point to the latest Guix, and the guix command loads code from there. Currently, the only way to roll back an invocation of guix pull is to manually update this symlink to point to the previous Guix.

Next: , Previous: , Up: Package Management   [Contents][Index]