Monday
Room 18
09:00 - 17:00
(UTC+02)
2 Days
Package management with Guix
Guix is a featureful package manager for GNU/Linux systems that takes a rather different approach than the traditional package managers (dpkg/apt for Debian/Ubuntu, rpm/yum/dnf for Red Hat/SUSE). Based on idea from Nix, Guix is a programmable, transactional, and reproducible packaging system. Are you confident that you can rebuild your docker images two years from now? Is it slow and frustratring to onboard new developers, chase dependencies, and getting the build to work on new machines? Chances are Guix offers a better story.
Guix supports features such as development environments (think python virtualenv but for all languages), a better container builder than docker, time travel, and handles cross-language dependencies. Users and operators should not care about cargo, pip, npm, go, cpan, or maven, etc., but they should, and do, care about the integrity of the supply chain and ease of getting programs to run. All powered by simple package recipes in Scheme (Guile), all easily version controlled.
This course will be a primer on software packaging and some history, a tour of some very neat guix features, and plenty of time to get our hands dirty by writing some packages of our own.
In this course you will learn:
- Software packaging basics
- Basic Guix usage, such as package installation and generations, disposable shells, development environments, and building containers
- Enough Scheme (Guile) to use Guix
- Writing custom packages for Guix