Never Ever Use NixOS
hands-on.cloud
hands-on.cloud
E.g. kernel updates requiring updates to various system packages is a legitimate issue of Nix OS. It's because upgrading the kernel also upgrades the kernel headers, and a lot of stuff uses those. I think on other distros they just compile packages with older header versions and there is no problem. This issue is not isolated to kernels though, it's about anything that communicates over a dynamic boundary. E.g. glibc.
I fully agree with the system requirements point, and have to add that keeping a system up to date creates a lot of network and hard disk movement compared to other distros. Downloading and deleting multiple gigabytes per week is normal.
The documentation point is spot on, it'd be really great if it could be improved.
I can't agree with the criticism about the determinism. It seems he parades an obscure bug around. It's not perfect, so? It's way better than the alternatives.
Linux headers and header updates are also decoupled from kernel packages in NixOS:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specifi...
If they weren't, picking another kernel version or updating a kernel would virtually replace all packages, since the headers are used by glibc.
I fully agree with the system requirements point, and have to add that keeping a system up to date creates a lot of network and hard disk movement compared to other distros. Downloading and deleting multiple gigabytes per week is normal.
If you run unstable. I have several servers that run the latest stable release. The updates are usually quite modest. Of course, it can happen that e.g. glibc needs a security fix and everything on top is updated.
I can't agree with the criticism about the determinism. It seems he parades an obscure bug around. It's not perfect, so? It's way better than the alternatives.
I had trouble following that point. The post first talks about determinism and then links to some issues that people had with fetchers?
Huh indeed you are right. I just confirmed that commenting out this line in my configuration.nix:
boot.kernelPackages = pkgs.linuxPackages_latest;
Causing a version change of the kernel from 5.9.16 to 5.4.91, only updates very few packages. The list of packages: linux-modules, firmware, linux-modules-shrunk, etc-nixos.conf, kernel-modules, etc, stage-1-init.sh, initrd-linux-5.4.91
Which is quite small. And only 62.81 MiB to download, almost nothing for NixOS.
> If you run unstable.
Actually I run stable Nix OS (with KDE Plasma as DE). Still there is a lot of download traffic. Those gigabytes I am referring to are from the stable version :). Just ran nix-collect-garbage, got to delete 11 GB in 3348 store paths :p.
Wow, I guess I see less traffic because I run stable on servers.
Seeing this more and more often nowadays. No matter how good the article, if I cannot read it I won’t stick around.
At least that was my experience on Firefox on Android.
Edit: Just to add, these days I have two content blockers + ninja-cookie installed in Safari and my network routed through a PiHole which does DNS lookups via NextDNS so I barely ever see these kind of intrusions any more.
Except not. I don't think "determinism" was ever an explicit goal of Nix. The sales pitch on their site is "learn how to make reproducible, declarative and reliable systems".
Nix takes very much a worse-is-better Unix approach. It aims to unify the mess of package management of Unix distributions and language runtimes in a reliable and easy-to-use way, but it doesn't aim to solve the computing world's problems in some quixotic quest for "purity".
From what I can gather the majority of the complaint in the article is around Nix itself used on different platforms, rather than around the NixOS distribution?
How can missing Windows support be a point against NixOS?
Or have I misunderstood what NixOS is?
the nix language just doesn't need to exist at all. you have to wonder just how bug-ridden a PL with almost no users is...this is what is holding your system together!
using nix with scripting languages is beyond painful, just look up the gymnastics required. losing your sanity is fully transactional!
you can brick a system with a legit nix config, I've done it
you have to reinvent most basic management tools and you can't use cloud services as they are all docker-based and will almost certainly never offer nix support.
etc etc
want rollback? just reinstall debian from scratch, its about the same time commitment.
just as with haskell, nothing can stop the nix hype machine and you just have to wait for the brigade to fail on its own and silently move on
They are tolerated only under duress, as the cost to get some more valuable result.
If a thing is more complicated and difficult, and does not provide a more valuable result, then it's the opposite of advanced.
(Of course, Nix and NixOS are not for every target audience.)