1. Guix is written in Guile Scheme, and I love anything Lisp (a joy to work with)
2. System configuration in one file, no more remembering all the random /etc/ files or tweaks here and there, it is all together
3. Easy package transformations: update source, different git branch, add a patch
4. Rollbacks of both the system configuration and packages (something breaks, just go back)
5. Minor, but user installation of packages is nice, rarely need to reach for sudo now
6. Active and friendly community. The project has plenty of steam I'd say, but is small enough you can get involved and contribute. I've enjoyed writing some patches and packages.
7. Overall, just a different way of doing a distro and running a system (nix is similar). It has been fun to learn and use, getting me excited for Linux again.
- Universal package manager (replaces pip, cabal, npm, etc.)
- Declarative OS-config which makes deploys on new devices and servers a breeze
- Scheme declaration language (I prefer it to Nix-lang)
- Bootstrapable from 512 byte binary [1]
- I can build a package from source or download the binary
- Easily modify package source, deps, or compiler [2]
Cons:
- No official nonfree software [3]
- Smaller package set than Nix
- No KDE yet and old version of Gnome (it takes a lot of work to update)
Neutral:
- No systemd
- Works with GNU Hurd
- No MacOS or BSD support (yet)
[1] https://guix.gnu.org/en/blog/2020/guix-further-reduces-boots...
[2] https://guix.gnu.org/manual/en/html_node/Defining-Package-Va...
i was on this front for a long time, but now it feels like a lost cause.
What guix suggest for managing services/containers/chroots/cgroups?