GNU Guix Package Manager
GNU Guix is a functional package management tool written for the GNU system. Differing from traditional package managers, Guix (like Nix, which Guix is based on) utilizes a purely functional deployment model where software is installed into unique directories generated through cryptographic hashes, which include all dependencies for it. It uses low-level mechanisms from the Nix package manager, but configuration and package recipes are written in Guile Scheme. GNU Guix provides 27,030 packages transparently available as pre-built binaries. These packages are defined as native Guile modules, which makes it a hackable system.
Main Features of Guix
- Transactional Upgrading
- Roll-Backs
- Reproducible Build Environments
- Unprivileged Package Management
- Per-User Profiles
- 27,030 Packages available
Installing Guix, Updating and Configuring
To install the Guix package management tool, open a Terminal and run:
sudo apt install guixTo upgrade the build daemon, run
sudo -i guix pullThis will take some time. Then, run
systemctl restart guix-daemon.serviceNow, all operations are run without sudo, each user has her own version of Guix and her own installed packages, which are different from other users.
To update the Guix tools along with the distribution of the packages that are installed, run
guix pullThis will take some time.
To integrate Guix into the system run these few commands:
guix install glibc-locales
export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
guix install fontconfig font-dejavu font-gnu-freefont gs-fonts
fc-cache -rvRun the following to avoid issues when opening a graphical session:
cat >> ~/.profile << EOF export XDG_DATA_DIRS="/usr/local/share:/usr/share/\${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS" EOF
Example of How to Install a Package with Guix
As shown above, run 'guix install [package]' to install a package. To install the GNU IceCat Web Browser for example, run:
guix install icecatDon't forget to set the environment variables, like shown on your terminal output, before starting IceCat!
Upgrading installed packages
To upgrade Guix, run
guix pullTo upgrade installed packages, run
guix package --upgradeor
guix package -u
Space on the root partition
Guix may take a lot of space on the root partition. You may check how much is used on your root partition by running
df -h /
Filesystem Size Used Avail Use% Mounted on /dev/mapper/vgtrisquel-root 883G 174G 665G 21% /In this example the available space is 665G, which is very large. If the available size is less than 10G, consider making space.
To make space, run the Guix garbage collector
gcEach time "guix upgrade" is run, a new "generation" is created, and previous generations, with older versions of installed packages are kept.
If you need to save space and don't need to use previous versions of installed packages, run
guix package --delete-generationsAnd then
gc