4 ms·
What about number of packages available? Does guix have something comparable to Nix Flakes?
by kohlerm 5y ago
What 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.