Reproducible Development Environments with GNU Guix
dthompson.us
dthompson.us
if you do (in either nix or guix) let me know. I've been planning on doing something similar for non-free software for a while but to be honest it seems I don't have to use non-free software nearly as much nowadays.
If all the functional machinery is in place, this would be perfect for a build tool.
Currently, in a guix package, you specify how the package is built - and there are some predefined configurations built into guix, such as the gnu-build-system. It's perfectly possible to write your own build script in guile alone, or you can call other build tools.
In case you missed it, GNU Make already has Guile support built in - so you can already use it to augment your build process without throwing away make.
The real advantage of having a build process as part of Guix will come when we can throw away horrible hacks like pkg-config - since the Guix model of exact dependencies offers far more accurate information that pkg-config can guess, we'd have more reliability with less effort, and probably big performance gains.
So, rather than using Puppet + Debian or something, you would probably just use Guix, because Guix has system configuration tools[0]. Guix (Nix, too) solves system management problems from the bottom, at the systems level. Other tools tack it on top of existing operating systems.
[0] https://www.gnu.org/software/guix/manual/guix.html#System-Co...
This kind of configuration goes one level above package management, whether it's guix, apt, yum, pacman, or anything else.
Edit: you actually said benefits of guix in the original question - it gives you the way to make a localised installation of something you want. Chef/Puppet cannot be it on their own.
The fun part is that configurations can be treated exactly like packages and vice-versa. A "package" can depend on a specific configuration too. After you realize that package management and configuration management are not really disjoint ideas, it's the only sane way to think about reproducing software reliably.
It does, actually. Check out the documentation for details:
https://www.gnu.org/software/guix/manual/guix.html#System-Co...
To install, just type:
meta install meta