by toomanyducks on 5/31/21, 6:24 PM
I think the issues with traditional packages all boil down to the fact that packages are not files. Packages are some transformed instance of some code, operating over a computer's resources in some way. Sure, eventually you get down to the fundamental file abstraction, but it can take a bit: all the variations of building from a single code base. What I like about Nix is that it stops representing packages as files and has its own declarative syntax. The OP observed what really is a side effect of that change, and it's great! Sometimes, though, I wish it went a bit farther than it does - there's room for a few more useful transformations between a package's code base, a package, and a file. If the nix program itself took a bit more control over the system, I think it would end up in a really cool place. The specifics of that, though, I do not know.
by ris on 5/31/21, 6:09 PM
Author doesn't even mention the ability to git bisect your entire system setup and the power if gives you to track down the exact commit that broke something.
by yewenjie on 5/31/21, 7:25 PM
So, how does Guix compare to Nix in 2021 for the average user (who does not want to spend all their time on package management)?
by nfoz on 5/31/21, 7:29 PM
Off-topic question about Nix. I understand it works by redirecting symlinks from, say, one version of a package's files to another.
Isn't there a race-condition here -- like if I invoke a program at the wrong time while it's in the process of changing symlinks, could it pick up the wrong libraries or something? Does Linux OS allow a "changeset" of files to be locked and altered together in a batch, or anything like that?
by ridiculous_fish on 5/31/21, 8:48 PM
How do NixOS users typically manage software that is not a Nix package, like a source code tarball where you would traditionally run configure && make && make install?
by comex on 5/31/21, 6:58 PM
That works for the kernel. But if you have to patch, say, glibc, under Nix doesn't that mean you can no longer use precompiled binaries, and have to recompile every single package that uses libc, from source?
Sure, it still works. And in the off-chance that you need to make a patch that changes the ABI, recompiling the world is exactly what you want. But usually you don't need to change the ABI (at least not in a backwards-incompatible way), and recompiling the world can take a very long time.
by totony on 5/31/21, 6:26 PM
To be fair Gentoo has /etc/portage/pqtches so that you can patch software from official packages instead of having to create a new one
by rssoconnor on 6/2/21, 7:49 PM
Ah I didn't know about boot.kernelPatches. This is so much easier than my complicated nixpkgs kernel override.
by programmer_dude on 5/31/21, 6:53 PM
Read the NPM doc but I still don't understand what "ejection" is. What are we ejecting? Can someone explain this please?
by amelius on 5/31/21, 7:25 PM
Unfortunately, Nix breaks my CUDA/NVidia support.