Live data from Hacker News

GNU Guix 0.8.1

savannah.gnu.org

21–30 of 41 posts

Re: GNU Guix 0.8.1

#22
We are going to use Guix as a package manager on a bioinformatics cluster. Managing various different scientific applications at different versions with very different dependencies for different user groups is something that is incredibly painful with traditional packaging systems. Guix greatly simplifies this whole process and writing package definitions in Scheme is so much nicer than, say, writing RPM spec files.

Re: GNU Guix 0.8.1

#23

Everyone talks about advantages. Would love to hear about disadvantages. Not obvious ones (like having to learn configuration language semantics or package missing stuff myself), but things that don't lie down in a plain sight right away and only discovered after a few days, weeks or months of usage. Anyone to share their experiences? (Migrating from Arch to NixOS at the moment, but thought maybe I'd detour a bit and…

From my understanding, the biggest disadvantage to purely functional package management is that you can't just swap out a package in isolation when many others depend on it. If I upgrade a package, I have to upgrade its whole DAG of dependent packages if I want them to use the new version (I could however delay that; they would simply continue to use the old version which hasn't been garbage-collected yet because they still use it).

So lots and lots of compilation (on build farms at least), and lots of bandwidth usage. Though something like ccache can help with the compilation, and binary diffs could help with the bandwidth.

Immutable data structures in FP are probably a good analogy.

Edit: argh, this was supposed to be a reply to the question about the disadvantages of the purely functional package managers specifically, not the OS in general.

Re: GNU Guix 0.8.1

#24
post #2

Version 0.8.1 of GNU's purely functional package manager Guix has been released. The project develops, at the same time, GNU GSD (Guix System Distribution), a GNU operating system. GNU GSD is an avant-garde GNU system utilizing Guix as its package manager, and the similarly Guile/Scheme based dmd as its init system.

First of all: Guix (and Nix) seems like really interesting projects, I'm just not there yet that I'm going to nuke what I know and love for it. I probably will one day, but not right now. But: I'm not sure you're doing your work any justice by labelling it "avant-garde". I think you risk looking "weird" or more dangerous than you need to and might detract people from looking into it.

Someone else just pointed that out to me too. I didn't know of all the connotations of the term, sorry about that. :-)

Re: GNU Guix 0.8.1

#25
post #4

Awesome to see this here! I've been using Nix/Nixos (which Guix is heavily based on) on my personal laptop for several months now. I'll never look back from the purely declarative system configuration - I finally feel like I have full control of my machine's state. It looks like Guix provides a significantly more expressive interface with Scheme than Nixos does with Nix expressions. IIRC, there's also better integrat…

I ran Guix as user-specific overlay on my Gentoo box for some time. It was pretty neat and I thought about using it for cross-distro deployment of libraries I need for development.

About half a year ago I ran into problems with updating and did not have the time to fix it (stuff simply did not build - I did not try the --with-source trick).

I hope that a reinstall with the new version fixes that.

What sold it to me was that when the system breaks during update, everything is still in a working state. → http://draketo.de/light/english/install-gnu-guix-03 My son once found the power-connector of my Gentoo box while I was running updates and hit the pretty red glowing button. It took me three days to recover the system…

Re: GNU Guix 0.8.1

#26
post #22

We are going to use Guix as a package manager on a bioinformatics cluster. Managing various different scientific applications at different versions with very different dependencies for different user groups is something that is incredibly painful with traditional packaging systems. Guix greatly simplifies this whole process and writing package definitions in Scheme is so much nicer than, say, writing RPM spec files.

that sounds pretty cool!

I tried using Guix to deploy to the cluster in Karlsruhe (more than a year ago) but back then it was still missing most of the libraries I needed. When you finished making it work for your cluster, that could be a pretty good base for many other people, too.

Re: GNU Guix 0.8.1

#27
post #20

Everyone talks about advantages. Would love to hear about disadvantages. Not obvious ones (like having to learn configuration language semantics or package missing stuff myself), but things that don't lie down in a plain sight right away and only discovered after a few days, weeks or months of usage. Anyone to share their experiences? (Migrating from Arch to NixOS at the moment, but thought maybe I'd detour a bit and…

The learning curve is pretty steep. It's not just a new config language, it's also letting go of many preconceptions one may have (where stuff lives on the filesystem e.g.). That's also true for software I'm packaging. Certain ecosystems just really love to load configuration files and write log files relative to the binary path which breaks in nixos because all packages live on a read-only mount (looking at you ruby…

> The learning curve is pretty steep. It's not just a new config language, it's also letting go of many preconceptions one may have (where stuff lives on the filesystem e.g.).

As a fairly new developer I don't find the learning curve to be steep. The configuration language is a Scheme DSL and is a lot simpler to my brain than spec files or Debian-style directories.

Where stuff lives in the filesystem becomes largely irrelevant because you can treat the store as a blackbox cache. What matters is only the stuff in ~/.guix-profile/, which is very tidy and only contains the software you installed to your profile.

Re: GNU Guix 0.8.1

#28
post #2

Version 0.8.1 of GNU's purely functional package manager Guix has been released. The project develops, at the same time, GNU GSD (Guix System Distribution), a GNU operating system. GNU GSD is an avant-garde GNU system utilizing Guix as its package manager, and the similarly Guile/Scheme based dmd as its init system.

First of all: Guix (and Nix) seems like really interesting projects, I'm just not there yet that I'm going to nuke what I know and love for it. I probably will one day, but not right now. But: I'm not sure you're doing your work any justice by labelling it "avant-garde". I think you risk looking "weird" or more dangerous than you need to and might detract people from looking into it.

Installing it just for your user instead of system wide is a pretty neat way to test Guix and profit from some of its benefits.

Re: GNU Guix 0.8.1

#29
I tried out nixos (the complete distro based on nix) on the weekend -- it's not saying too much that it's a revelation. I can see myself completely switching for my development machines and possibly for servers as well.

The amazing thing is that the whole set up of your linux machine is encaptulated in one declarative text file (that you can put in version control). Give it a try by installing it using VirtualBox: https://nixos.org/wiki/Installing_NixOS_in_a_VirtualBox_gues.... You can log in (demo/demo in the 14.10 vm) and play around, essentially be editing `/etc/nixos/configuration.nix`.

I recommend trying the configuration of an experienced user. Here's the result of a simple search on github:

https://github.com/sitano/configuration.nix

https://github.com/Hinidu/configuration.nix

https://github.com/garbas/nixos-configuration

You can also get started very easily using a ec2 tiny instance (free tier): https://nixos.org/wiki/NixOS_on_Amazon_EC2

Re: GNU Guix 0.8.1

#30
post #2

Version 0.8.1 of GNU's purely functional package manager Guix has been released. The project develops, at the same time, GNU GSD (Guix System Distribution), a GNU operating system. GNU GSD is an avant-garde GNU system utilizing Guix as its package manager, and the similarly Guile/Scheme based dmd as its init system.

First of all: Guix (and Nix) seems like really interesting projects, I'm just not there yet that I'm going to nuke what I know and love for it. I probably will one day, but not right now. But: I'm not sure you're doing your work any justice by labelling it "avant-garde". I think you risk looking "weird" or more dangerous than you need to and might detract people from looking into it.

Avant-garde is a perfect description of Guix. It is an experimental OS that pushes the boundaries of the status quo.

What negative connotations do you think this has among hackers?

Post reply on HN