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_ID
and retrieve that key via GNU Privacy Guard:$ gpg --search-key 0x3CE464558A84FDC69DB40CFB090B11993D9AEBB5
Run 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.sh
On a debian system, you might instead require to run:
$ sudo -E ./guix-install.sh
Done. The command
guix
should now be available on your system. Runguix --help
to 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-ttf
Note if guix suggests to run some commands like
export
orhash guix
in 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 -rv
to 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
~/.guixrc
in 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_DIRS
should 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" >> ~/.profile
Perform a logout-login sequence. (In case your graphical login fails, use
to get a terminal login and fix your files.) Run
guix package -I
to 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 extremetuxracer
This will install a small racing game which can be controlled with just your keyboard. The corresponding binary is called
etr
and is linked to folderbin
of your default guix profile:$ ~/.guix-profile/bin/etr
This 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 --upgrade
In case you install more guix packages via
$ guix package -i ...
and guix recommends to define environment variables, please update the~/.guixrc
file 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~/.profile
and runfc-cache -rv
.Perform a logout-login sequence and run
$ guix package -I
to see whether guix runs fine.Install more packages via
$ guix package -i ...
.