GNU Guix on Top of Trisquel
The Trisquel 8.0 Operating System can be enriched with up-to-date projects if you install the GNU Guix Package Manager on top of it. Guix does not interfere with the distribution’s package manager, but provides additional features such as reproducable builds and per user package profiles.
This page shows how Zerocat’s Coreboot Machines can be set up to get advantage from Guix. If Guix is installed already, you might use this page as a reference. However, GNU Guix comes with its own manual, so please refer to that at first place. If you see something wrong or inappropriate here – please let me know!
Please make sure that your /tmp partition offers enough space for
guix, it should be something like 10GB minimum as far as I remember.
Otherwise you might run into “out of space” issues.
Install GNU Guix 1.0.1 Binary
Log into your user account. The user must be a member of group sudo.
Visit the GNU Guix Website and get the GNU Guix install script called
guix-install.sh. Within the script, check the value ofOPENPGP_SIGNING_KEY_IDand retrieve that key via GNU Privacy Guard:$ gpg --search-key 0x3CE464558A84FDC69DB40CFB090B11993D9AEBB5Run the GNU Guix install script as user root, but keep the current user’s environment, so that the script will check the right gpg keyring:
$ sudo ./guix-install.shOn a debian system, you might instead require to run:
$ sudo -E ./guix-install.shDone. The command
guixshould now be available on your system. Runguix --helpto see available guix commands.
Install a First Set of Guix Packages
Install a basic set of fonts along with package fontconfig:
$ guix package -i fontconfig \ -i gs-fonts \ -i font-gnu-unifont \ -i font-gnu-freefont-ttfNote if guix suggests to run some commands like
exportorhash guixin the current terminal, please do. Later on, environment variables should be covered by our file~/.guixrc, which is sourced upon login (see next section).Now run
fc-cache -rvto update your font caches.Install the gtk+ package along with up-to-date themes for the mate desktop:
$ guix package -i gtk+ \ -i mate-common \ -i mate-themes \ -i mate-icon-theme
Define your Guix Environment
Set up a new file called
~/.guixrcin which essential environment variables will be defined:# Set user’s default guix profile: GUIX_PROFILE="$HOME/.guix-profile" # Load the guix profile: source "$GUIX_PROFILE/etc/profile" # Set a default GTK Theme: export GTK_THEME="Default" # Prevent the graphical login to fail: export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}/usr/local/share/:/usr/share/" # Make sure to use up-to-date guix binary: export PATH="$HOME/.config/guix/current/bin${PATH:+:}$PATH" # Make sure to use up-to-date info material: export INFOPATH="$HOME/.config/guix/current/share/info${INFOPATH:+:}$INFOPATH"Note
XDG_DATA_DIRSshould be set with some standard values explicitly, as otherwise you might experience that your graphical login won't work for some reason.Append one line to your
~/.profile:$ echo "source ~/.guixrc" >> ~/.profilePerform a logout-login sequence. (In case your graphical login fails, use
to get a terminal login and fix your files.) Run
guix package -Ito get a list of installed packages and to see whether guix runs fine.In case a warning is issued (
guile: warning: failed to install locale), the installation of two more packages should help:$ guix package -i glibc -i glibc-locales
Let’s Have some Fun!
Let’s have some fun with guix and package extremetuxracer:
$ guix package -i extremetuxracerThis will install a small racing game which can be controlled with just your keyboard. The corresponding binary is called
etrand is linked to folderbinof your default guix profile:$ ~/.guix-profile/bin/etrThis game should immediatly be visible in your main menu in section “Games” as well.
See how easy it is to use Guix?
Other packages might be more difficult or impossible to integrate, though. For example, how to access a decent printer or scanner with package hplip?
Maintain Your Guix
From now on, you might update your user’s guix on a monthly schedule with:
$ guix pull $ guix package --upgradeIn case you install more guix packages via
$ guix package -i ...and guix recommends to define environment variables, please update the~/.guixrcfile if needed, so that the environment will be properly set at next logins.Don't forget to update root’s guix from time to time, which will affect the guix binary that is used by the build-users, controlled by the guix-daemon on behalf of users (If I understand correctly.)
$ sudo -i guix pull
Set up Guix for a different User
Log into another user account and run
$ guix pull.Install the basic set of packages as described above, setup user’s
~/.guixrc, modify~/.profileand runfc-cache -rv.Perform a logout-login sequence and run
$ guix package -Ito see whether guix runs fine.Install more packages via
$ guix package -i ....
