Live data from Hacker News

GNU Guix 0.8.1

savannah.gnu.org

11–20 of 41 posts

Re: GNU Guix 0.8.1

#11
It seems that Guix&Nix have many advantages. Could anyone also elaborate some disadvantages of this system in comparison with traditional package managers like debian's or rpm? [Edit] I'm considering a switch to one of Guix or Nix, and I'd like to know if the pros outweigh the cons.

Re: GNU Guix 0.8.1

#12
post #3

Could someone explain in a simple way, why this is better that using, for example, apt-get ?

Others have explained it, but I like to see it like that:

- apt-get, yum, pacman and "traditional" package managers deal with _transition of your system_: _please install this packet_, _please remove this packet_

- nix and guix deal with _state of your system_: _please make sure that the final state is thus_.

This brings easy reproducibility of a system (if you have the recipe, you can have a another machine be an _exact_ copy) and de-entanglement (no more managing conflicting dependencies, no more dangling files). If I were to draw parallel, it would be like this:

- "traditional" package managers are like jQuery: you pick some DOM node / some package, and modify it / update it. After some time you don't know anymore who modified this DOM node, who needs it, ... things become hard to track

- nix and guix are like React: you specify the state you want in a single place (or rather in a definite place) and React/nix maps that definition into your final product

Here's a long blog post that goes into more detail: https://www.domenkozar.com/2014/03/11/why-puppet-chef-ansibl...

Re: GNU Guix 0.8.1

#13
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 try Guix.)

Re: GNU Guix 0.8.1

#14
post #3

Could someone explain in a simple way, why this is better that using, for example, apt-get ?

Very interesting your responses. Looks interesting to try it. So it's hard / too problematic to get it working over, a Kubuntu ?

Re: GNU Guix 0.8.1

#15

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…

A disadvantage is that some services (like dbus) look for service files in a well-known location. When packages are installed they don't place any of their files in a directory outside of their target directory. So, JACK2, for example, won't be able to place its dbus service file in a location that the dbus service natively knows about.

In many cases situations like this can be fixed by setting environment variables, but in some cases more patching is required to make this work properly.

EDIT: I don't consider this a serious disadvantage, though. It is not unusual for packagers to patch software in other distributions. (I dare you to check out spec files for popular RPMs.) It's just something a package maintainer has to think about under some circumstances.

I should also note that I'm surprised at how little patching is required for most software (besides the common shebang patching).

Re: GNU Guix 0.8.1

#16
post #11

It seems that Guix&Nix have many advantages. Could anyone also elaborate some disadvantages of this system in comparison with traditional package managers like debian's or rpm? [Edit] I'm considering a switch to one of Guix or Nix, and I'd like to know if the pros outweigh the cons.

One disadvantage compared to RPM and apt-get is that there are not as many packages available yet.

Re: GNU Guix 0.8.1

#17
post #3

Could someone explain in a simple way, why this is better that using, for example, apt-get ?

Very interesting your responses. Looks interesting to try it. So it's hard / too problematic to get it working over, a Kubuntu ?

It works very well on top of an existing distribution (I'm using it on Fedora). You only need to add ~/.guix-profile/bin to your PATH once everything is installed.

Re: GNU Guix 0.8.1

#18
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've been using Guix for about a week and it's mostly worked for me. I'm not sure why but sometimes `guix package -i ` will fail yet I can do a `guix build [--with-source=] ; guix package -i ` and the package will then get installed as expected. (I've only had to use the `--with-source` option once, and it was with openssl, iirc, because the tar.gz guix was looking for was no longer in openssl's ftp site at `/source/openssl.tar.gz` instead it was moved to `/source/old/openssl.tar.gz`)

But in general I have no idea what I'm doing with it. Just trying it out and it's mostly working for me.

Re: GNU Guix 0.8.1

#19
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'm one of the developers, but my first experience before that was installing it on top of my Debian system. There were a few manual setup steps to follow to make it work, but once it did it was awesome. Guix lives perfectly alongside a host system like Debian and doesn't interfere with apt. Guix packages, while being fewer in number, are more up-to-date, so I used Guix to get versions of software that weren't in Debian yet.

Installing the full OS is for the brave at the moment, but we'd certainly like you to give it a try if you have the machine/VM to spare. If you do, please let us know what you liked/disliked, what worked and what blew up. There's no guided installer, but it's not too hard to get running in most cases. Partition disks, write system config, run something like 'guix system init config.scm /mnt/my-new-root-partition/' and reboot.

Since becoming one of the core developers, I have been working on a tool called 'guix environment' that can be used for creating reproducible development environments for software projects. I was happy to discover that the core part of Guix contains all the features needed to write tools that could replace things like Vagrant and (once we have container support) Docker. It's just a matter of writing the proper frontend.

I hope you'll give Guix a try sometime. :)

Re: GNU Guix 0.8.1

#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, cargo from rust will also be fun).

Lastly there's just not the same number of contributors yet so you're going to have more of the small issues that get fixed and reported by the armies of users that e.g. Ubuntu has.

I'm saying all this as an incredibly happy user. I can think of few technologies that have given me as much leverage as nixos in recent years.

Post reply on HN