1. 13

  2. 4

    Anyone got any hands-on experience with Guix versus Nix?

    Also, the announcement links to https://www.softwareheritage.org/ Interesting project!

    1. 3

      I use Nix at the moment, but briefly dabbled with Guix. Here is a summary of the most obvious differences I came across as a new user:

      • At least initially, I found making minor changes to packages easier in Guix as it uses guile, which means there’s basically very little syntax to learn; it’s just a lisp with a package managing API. Nix, for me at least, had a slightly steeper initial learning curve, although having invested some time in learning the basics I do prefer the Nix expression language.
      • Nix has a much more extensive set of packages in its repository, nixpkgs. I believe the Guix package set was originally generated from nixpkgs, but they aren’t synchronised.
      • At least when I last tried it, Guix was quite a bit slower than Nix. Probably less of an issue once you’re all set up and only occasionally need to modify your installed packages, but quite frustrating if you’re experimenting, or writing packages for the first time.
      • Guix has a slightly different set of tools with a slightly different focus to Nix’s. See for example, guix pack (nix-bundle exists, but it’s less mature), guix challenge, guix weather.
      • I feel that Guix’s commands present a more consistent and intuitive interface to the user than Nix’s do. For example, Guix has a single executable, guix, with lots of subcommands, guix package, guix build, etc.. Nix has lots of separate executables, nix-env, nix-build, nix-instantiate, nix-shell, and then as of Nix 2.x, also has the nix executable with various subcommands such as nix build. I believe this fragmentation and duplication is due to a gradual transition to the Nix 2 interface. I assume the eventual goal is for nix to do everything via subcommands, deprecating the others.
      • Guix documentation is more comprehensive and better organised. Nix has some good documentation, but it hasn’t been kept up to date. For example, the Nix Manual doesn’t appear to document the new nix command at all.
      • In theory at least, Nix and Guix use the same store format and can share a store.
    2. 2

      Is Guix a general package manager or is it strictly for Guile?

      1. 4

        It’s a general package manager, just like Nix, it’s just writing in Guile. This video might serve as a good example/introduction.