Want to run something a little more exotic on your server? How about GNU Guix?
It has been a month since migrating my home server to GNU Guix. Managing OS state declaratively through Git has eliminated configuration drift, and Guile Scheme provides a cohesive environment that complements Emacs. While adapting to a smaller package ecosystem and managing substitute timing requires occasional adjustments, the stability, reproducibility, and container isolation make it a dependable foundation.
↫ Wai Hon
I’m definitely noticing an increase in interest in Guix lately.

You are right, but can anyone explain please why exactly? I seem to be unable to see anything beautiful in this (Guile scheme alone makes me puke). Can anyone describe a good realistic scenarios for NixOS or Guix, when RedHat (immutable) or Arch just would not cut it (just to name the two extreme sides of the spectrum, that I do understand).
Andreas Reichel,
IMHO it’s about declarative configuration. The problem with traditional operating systems is that changes and updates can leave an OS in a messy state that further from a known-good state and carries unintentional baggage. An immutable OS can part of the fix but sometimes you really do want to change the OS in a way that’s canonical. And a declarative configuration helps solve this.
The author does a decent job of listing their reasons to choose Guix, but looking at the lisp even briefly… I don’t know if I would avoid Guix over this, but…yuck. Most languages are designed to be human readable, but lisp was not. Lisp is actually a great format for computers to work with, but in cases where humans need to read & write it, it’s quite bad. Just look at those listings! Whether it was a good choice or bad choice for Guix will depend on whether humans or machines are meant to configure/program Guix instances.
I do appreciate that Guix didn’t use a home grown programming language. Take Exim, it’s a sophisticated email daemon with some programmable capabilities that let us achieve powerful results, but the custom language is so quirky and bad compared to just about any shelf language. If I could choose one, javascript / JSON are popular and easy to work with. Or if the aim is a language that’s human readable and simple to implement then forth could be a good choice.
I do see the value in declarative operating systems like Guix, and having a standard language is a pro, but lisp in particular is a con to me. The author’s criticism of nix documentation and version discrepancies is valid too though. There’s not an overall winner, it’s a mix of pros and cons.
Thank you. At least I don’t seem to be alone with my view on LISP.
Secondly:
I don’t know, but I first ran Gentoo for a very long time and later switched to ARCH. And I have never been facing such problems and can’t even remember when I ever setup a new system. `etc-dispatch` does a great job for me and feels very intuitive.
Maybe Guix/NixOS are just not made for me. That is very fine of course. I did not understand NFTs either.
I laughed. I understand neither of them but I’d argue that Guix/NixOS are a few orders of magnitude more useful than NFTs. =)
Literally setting money on fire is more useful than NFTs – at least it can keep you warm for a bit during winter.
One use-case where Guix comes up a lot is for reproducible and replicable research. Because the entire software and operating system stack can be captured it means others can deploy the exact same environment for replicating results. On top of that the project also handles long-term software archiving, so researchers can be confident their stack won’t suffer from digital obsolescence in the longer term.
https://hpc.guix.info/blog/2023/06/a-guide-to-reproducible-research-papers/
flypig,
I agree with that. In software development sometimes it’s a struggle to reproduce customer bugs. We had an instance where a customer was experiencing a very specific bug that we were never able to replicate. They weren’t willing/able to let us onto their environment and the bug wasn’t happening for us so we were kind of stuck. Had it been Guix or NixOS, we would have had a way to reproduce their configuration and results. In principal I think this is a great use case for Guix/NixOS, however in practice the odds of customers using these is quite low. Is there a windows equivalent? For better or worse most of my clients are windows based.