Are NixOS and Guix analogous projects?
From what I can tell, both NixOS and Guix are built around a package manager which, instead of installing package into the "common environment" as is traditional, isolates them to mitigate issues arising from various dependency/version conflicts.
Are there any significant differences between these two distributions? Why would one decide to use NixOS and not Guix, or vice versa?
1 answer
The following users marked this post as Works for me:
User | Comment | Date |
---|---|---|
matthewsnyder | (no comment) | Sep 11, 2023 at 21:08 |
They are broadly analogous; there's a lot of cross-pollination of ideas between the projects.
Some terminology first, because you'll notice that both columns have duplicate entries and this often confuses the conversation.
Component | in Nix | in Guix |
---|---|---|
package expression language | Nix | Guile Scheme (independent of Guix) |
package manager software | Nix | Guix |
repository of packages | Nixpkgs | Guix |
operating system built around above | NixOS | Guix System |
Significant differences between the projects include:
- Guix (the package manager) consumes input expressed in (Guile) Scheme. Nix (the package manager) consumes input expressed in Nix (the language). Some people love Scheme. Some people hate Scheme. Some people are indifferent toward Scheme but hate that Nix is yet another special-purpose language to learn. Some people like Nix the language despite its niche status.
- Guix System uses GNU Shepherd as its service manager and init system. NixOS uses systemd. Some people love systemd. Some people hate systemd. Some people are indifferent toward systemd but hate that GNU wrote yet another implementation of a service manager. Some people like GNU Shepherd despite its niche status.
- Guix (the package repository) contains libre software only. Nixpkgs restricts itself to libre software by default, but allows flags to be set to install non-libre software. The maintainers of Nixpkgs are less zealous about libre software than the GNU project is (a somewhat vacuous statement, given the ideals of GNU), so there are more errors in license classification in Nixpkgs than in Guix. Conversely, there are generally more packages available in Nixpkgs than in Guix, even restricted to the libre subset.
- To grossly overgeneralize, Nix is older and Guix is nimbler. The pace of innovation seems faster in the Guix project. But Nix has more weight behind it in the form of paid developers from various companies invested in the success of the project.
[Third-party edits adding to this list are encouraged on this post.]
0 comment threads