5 ms·
> In short, GNU Guix is both a package manager you can use in any distro and a full-fledged GNU/Linux distribution, that is modern and advanced Why not just us
by srvmshr 5y ago
> In short, GNU Guix is both a package manager you can use in any distro and a full-fledged GNU/Linux distribution, that is modern and advanced
Why not just use Nix, which is more battle tested?
- podiki 5y agoShort answer: I prefer Lisp (Guile Scheme in this case) to anything else really. Maybe the Nix language is fine, but I can already read Guix code and prefer working in the land of parens.
- pxc 5y agoAs a NixOS user who has (recently!) played with Guix, I don't think ‘battle testing’ is a great reason to prefer Nix. Guix has an excellent CLI and awesome docs. It's stable and plenty usable. All being in one, high-level language like Scheme makes it seem really easy to hack on, and I think that's part of why its CLI is so good already. Nix is faster, it supports macOS, and its package collection is much bigger because it's older. But Guix seems great to me, too! If you think you might like it, try it.
- kohlerm 5y agoWhat about number of packages available? Does guix have something comparable to Nix Flakes?
- angio 5y agoTo be fair, the appeal of Nix (and Guix) to me is that it's very easy to create binary packages of applications I use. Coming from Fedora, it takes minutes to create new packages compared to hours with RPM.
- rekado 5y agoGuix has lots of packages in the default channel, and you can add any odd git repo as another channel providing extra software. There are quite a few popular channels, such as non-guix (with things like vanilla Linux), guix-science, guix-past, etc. As a maintainer of R packages in Guix I'd also like to point out that many R packages in Nix actually need more work to build them, so the number of packages in Nix is rather inflated. Guix also goes to great lengths to actually build things completely from source, such as Java packages, or to minify JavaScript from source files.
- vk3wtf 5y agoCurrently in nixpkgs ~3% of rPackages fail to build.
- pxc 5y agoI think Guix has like 1/3 the total number of packages available, probably less. This may not be a huge deal— when I started using NixOS, Nixpkgs was much smaller than it is now, too, but it still felt worth it for me. As another user pointed out, packaging in Nix and Guix is pretty easy for anything that doesn't have a bespoke or ill-behaved (requiring network access, trying to write to the directories of other packages, etc.) build system. But it can make a big difference for usability if packaging work is cumbersome for you, or something very large or complex that you want is missing. (I think KDE is still missing, for example.) Nix flakes are kind of a lot of things: a version pinning system, the switch to pure evaluation mode by default (which impacts caching in a good way but makes configuration slightly more annoying), a distribution mechanism for code written in Nixlang, and a collection of Nixlang schemas which enable a richer command line experience (that, e.g., power the new `nix run` command). It's not clear how many of those functions Nix flakes will retain in its final form. There's no singular feature that attempts all that in Guix as far as I know, and I don't know the general technical story for evaluation caching with Guix. But Guix does have an integrated, first-party form of package pinning. Where Nix flakes replaces the old 'channel' system, Guix has a richer notion of channels which support pinning in normal Guix expressions. (In Nix, channels are an output that have a certain structure and get managed in a certain way via fhe nix-channel command to manage them— they're like another type of Nix profile. In Guix, channels are defined by the user directly in Scheme code, just like the rest of their configuratiom, which is more similar to how Nix flake inputs are defined than to Nix channels.) I've never used Guix channels in anger, so I can't tell you how nice that notion of version pinning is to use.
- civodul 5y ago"guix describe" and "guix time-machine" make it rather easy to pin a Guix revision (and thus the whole package set) and to restore it anytime: https://guix.gnu.org/manual/en/html_node/Replicating-Guix.html https://guix.gnu.org/manual/en/html_node/Replicating-Guix.ht...
- pxc 5y agoI really like the design of `guix time-machine`. It's pretty cool how it just reuses the existing syntax for other subcommands, instead of modifying them.
- masklinn 5y agoAuthor is a lisper, is a good reason. And while nix may be battle tested that doesn’t translate to a good experience, the learning curve is high and the documentation while plentiful is not really good or helpful to beginners. Plus the entire thing is in flux right now between flakes, home-manager, and a desire to kill nix-env.
- NavinF 5y ago> Author is a lisper, is a good reason. If I read this on any other website I’d assume it’s sarcasm. Only on HN, folks.
- detaro 5y ago... why would other sites not count "Guix uses a language the author might already be more comfortable with" as an argument for why the author might prefer Guix?
- agumonkey 5y agoIt's curious how the world rejects lisp so fast, I guess they have a lot of energy to waste.
- masklinn 5y agoI don't understand why it would be sarcasm on any site. That is the original divergence, Guix was a version of Nix built on Guile instead of Nix. If you're a long-time lisper interested in the ideas embodied by nix/guix, that alone is a lot of points for guix.
- zelphirkalt 5y agoNot sure what level exactly a beginner is, but I have my problems with Guix docs too. Try making a package for example. Took me a long time and multiple questions on mailing list and irc to get it done. People also recommend more than 1 different strategies. Then try upgrading a package, when there are some files you want to exclude. How to do that? Seems I can not find answers for my questions in the docs and always find myself asking on mailing list or irc. There people are helpful and mostly you get an answer. I like Guix as package manager, but their docs can definitely be improved with loads of examples and tutorials.
- acomjean 5y agoNix is another Linux package manager. https://nixos.org/ https://nixos.org/
- kdtsh 5y agoFor my part, I think Guix has a much nicer CLI experience, and I find the documentation easier to comprehend. I also prefer the Guix DSL in Scheme to the Nix expression language. I haven’t used NixOS though, which could make things a bit different.