Report 1 - GUIX: Getting started

The reason I want to learn about GUIX is that it seems like the right thing to base the rest of my custom OS work on. I’ve used various distributions of Linux and I’m not really a fan of them. Further, it would be nice to have a sort of “One Ring” OS that I can use in every place I’d want a general PC OS, including cloud, desktop, embedded, and any other thing that might come up.

The target setup

Initially I want to be able to use vagrant to easily spin up a new instance by providing a GUIX SD image along with an OS configuration file and have a running environment in an instant.

What exists so far

Looks like there’s one other person who’s provided any sort of GUIX setup for Vagrant. Their setup is a year old and what they do is use Packet to create guix installs from an OS config and GUIX SD image. This is then used with Vagrant.

I think I want to go a different way but the first step in learning is to try someone else’s approach and see how it goes.

That other approach is here.

Installing Vagrant

Easy enough. Go to their website and click the right host. Mine is a ubuntu based system so my copypasta is:

wget -O- | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vagrant

Best bet is to do it one line at a time.

First run

The quickstart for Vagrant says to run an init command with their base image. I ran the same command with the palfrey image and all it does is create the file. So instead I deleted it and recreated it from the content suggested in the palfrey image README. Then I run the vagrant up command, wait it out, and have it fail complaining that rsync doesn’t support the -z argument used due to libz being missing. Since I used the system package manager to install vagrant it would appear the system packages and packages provided are not compatible when it comes to rsync–the option isn’t being provided by the Vagrantfile config.

Second run

After an apt upgrade and redo of vagrant up I quickly arrived back at my prompt without an error. Then I run a vagrant ssh to find myself in a new prompt where guix –help gives the expected output.