Next: , Up: Installation   [Contents][Index]


2.1 Binary Installation

This section describes how to install Guix on an arbitrary system from a self-contained tarball providing binaries for Guix and for all its dependencies. This is often quicker than installing from source, which is described in the next sections. The only requirement is to have GNU tar and Xz.

Installing goes along these lines:

  1. Download the binary tarball from ‘ftp://alpha.gnu.org/gnu/guix/guix-binary-0.9.0.system.tar.xz2, where system is x86_64-linux for an x86_64 machine already running the kernel Linux, and so on.
  2. As root, run:
    # cd /tmp
    # tar --warning=no-timestamp -xf \
         guix-binary-0.9.0.system.tar.xz
    # mv var/guix /var/ && mv gnu /
    

    This creates /gnu/store (see The Store) and /var/guix. The latter contains a ready-to-use profile for root (see next step.)

    Do not unpack the tarball on a working Guix system since that would overwrite its own essential files.

    The --warning=no-timestamp option makes sure GNU tar does not emit warnings about “implausibly old time stamps” (such warnings were triggered by GNU tar 1.26 and older; recent versions are fine.) They stem from the fact that all the files in the archive have their modification time set to zero (which means January 1st, 1970.) This is done on purpose to make sure the archive content is independent of its creation time, thus making it reproducible.

  3. Make root’s profile available under ~/.guix-profile:
    # ln -sf /var/guix/profiles/per-user/root/guix-profile \
             ~root/.guix-profile
    
  4. Create the group and user accounts for build users as explained below (see Build Environment Setup).
  5. Run the daemon:
    # ~root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild
    

    On hosts using the systemd init system, drop ~root/.guix-profile/lib/systemd/system/guix-daemon.service in /etc/systemd/system.

  6. Make the guix command available to other users on the machine, for instance with:
    # mkdir -p /usr/local/bin
    # cd /usr/local/bin
    # ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix
    
  7. To use substitutes from hydra.gnu.org (see Substitutes), authorize them:
    # guix archive --authorize < ~root/.guix-profile/share/guix/hydra.gnu.org.pub
    

And that’s it! For additional tips and tricks, see Application Setup.

The guix package must remain available in root’s profile, or it would become subject to garbage collection—in which case you would find yourself badly handicapped by the lack of the guix command.

The tarball in question can be (re)produced and verified simply by running the following command in the Guix source tree:

make guix-binary.system.tar.xz

Footnotes

(2)

As usual, make sure to download the associated .sig file and to verify the authenticity of the tarball against it!


Next: , Up: Installation   [Contents][Index]