# msgid "" msgstr "" msgid "" "title: Running Guix on NixOS\n" "date: 2018-07-17\n" "layout: post\n" "lang: en\n" "ref: running-guix-on-nixos" msgstr "" msgid "" "I wanted to run Guix on a NixOS machine. Even though the Guix manual " "explains how to do it [step by " "step](https://www.gnu.org/software/guix/manual/en/html_node/Binary-" "Installation.html#Binary-Installation), I needed a few extra ones to make it" " work properly." msgstr "" msgid "" "I couldn't just install GuixSD because my wireless network card doesn't have" " any free/libre drivers (yet)." msgstr "" msgid "Creating `guixbuilder` users" msgstr "" msgid "" "Guix requires you to create non-root users that will be used to perform the " "builds in the isolated environments." msgstr "" msgid "" "The [manual](https://www.gnu.org/software/guix/manual/en/html_node/Build-" "Environment-Setup.html#Build-Environment-Setup) already provides you with a " "ready to run (as root) command for creating the build users:" msgstr "" msgid "" "However, In my personal NixOS I have disabled " "[`users.mutableUsers`](https://nixos.org/nixos/manual/index.html#sec-user-" "management), which means that even if I run the above command it means that " "they'll be removed once I rebuild my OS:" msgstr "" msgid "" "Instead of enabling `users.mutableUsers` I could add the Guix users by " "adding them to my system configuration:" msgstr "" msgid "" "Here I used `fold` and the `//` operator to merge all of the configuration " "sets into a single `extraUsers` value." msgstr "" msgid "Creating the `systemd` service" msgstr "" msgid "One other thing missing was the `systemd` service." msgstr "" msgid "" "First I couldn't just copy the `.service` file to `/etc` since in NixOS that" " folder isn't writable. But also I wanted the service to be better " "integrated with the OS." msgstr "" msgid "" "That was a little easier than creating the users, all I had to do was " "translate the provided [`guix-" "daemon.service.in`](https://git.savannah.gnu.org/cgit/guix.git/tree/etc/guix-" "daemon.service.in?id=00c86a888488b16ce30634d3a3a9d871ed6734a2) configuration" " to an equivalent Nix expression" msgstr "" msgid "This sample `systemd` configuration file became:" msgstr "" msgid "" "There you go! After running `sudo nixos-rebuild switch` I could get Guix up " "and running:" msgstr "" msgid "Some improvements to this approach are:" msgstr "" msgid "" "looking into [NixOS modules](https://nixos.org/nixos/manual/index.html#sec-" "writing-modules) and trying to bundle everything together into a single " "logical unit;" msgstr "" msgid "" "[build Guix from " "source](https://www.gnu.org/software/guix/manual/en/html_node/Requirements.html#Requirements)" " and share the Nix store and daemon with Guix." msgstr "" msgid "Happy Guix/Nix hacking!" msgstr ""