blob: ad29a0a62ba85d5f931c40c69e13ab02ee5b346b (
plain) (
tree)
|
|
#
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 ""
|