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
pull: the command downloads the latest Guix source code and package
descriptions, and deploys it. Source code is downloaded from a
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
guix sub-commands added by the update also
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
guix pull, this has no
effect on the version of Guix that user
alice sees, and vice
The result of running
guix pull is a profile available
under ~/.config/guix/current containing the latest Guix. Thus,
make sure to add it to the beginning of your search path so that you use
the latest version, and similarly for the Info manual
export PATH="$HOME/.config/guix/current/bin:$PATH" export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH"
-l option lists past generations
guix pull, along with details about their provenance:
$ guix pull -l Generation 1 Jun 10 2018 00:18:18 guix 65956ad repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe Generation 2 Jun 11 2018 11:02:49 guix e0cc7f6 repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d Generation 3 Jun 13 2018 23:31:07 (current) guix 844cc1c repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: 844cc1c8f394f03b404c5bb3aee086922373490c
~/.config/guix/current profile works like any other profile
guix package (see Invoking guix package). That
is, you can list generations, roll back to the previous
generation—i.e., the previous Guix—and so on:
$ guix package -p ~/.config/guix/current --roll-back switched from generation 3 to 2 $ guix package -p ~/.config/guix/current --delete-generations=1 deleting /home/charlie/.config/guix/current-1-link
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
gnu.org, for the stable branch of Guix. To use a different source,
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.
List all the generations of ~/.config/guix/current or, if pattern
is provided, the subset of generations that match pattern.
The syntax of pattern is the same as with
--list-generations (see Invoking guix package).
Use the bootstrap Guile to build the latest Guix. This option is only useful to Guix developers.
guix pull supports all the common build options
(see Common Build Options).