Is NixOS a cult? Every time someone posts about Linux packaging, there's a "you should just use NixOS" comment.
Although it provides its own solution to the Linux packaging problem, it's a single solution that comes with a whole load of baggage with it. It is not the panacea its proponents wants us to believe it is.
I think in conversation we don't separate the fundamental concepts that Nix implements from the particular implementation.
The fundamental idea is this: Every package is built in a "hermetic" environment that guarantees that the only inputs are the ones you have explicitly specified. Those inputs include tools, source files, compilers, build instructions etc., all specified by a hash. Those inputs themselves can then be packages build in this way, such that everything in your system forms a big Merkle tree.
This approach enables a number of excellent things - you get excellent build reproducibility, you can cache any step you want etc. A lot of the concerns you get with a more conventional system just go away.
People have objections to Nix(OS) - the language, the sporadic documentation, some of the design decisions made, the learning curve etc. But I think those (very reasonable) objections obscure the more interesting debate about the underlying approach and value.
Indeed; GNU Guix is essentially the same thing, but with a different language and CLI (the two main source of complaints about Nix).
Similar to how Git has a notorious CLI; but that doesn't invalidate the idea of DVCS (with alternative implementations in Mercurial, Bazaar, Darcs, etc.)
I use nix as my package manager, but I would use Guix instead if it would support macs. Nix is a great idea but it has a huge amount of ground to cover in reducing onboarding friction.
The problems with NixOS are not the only ones you highlighted. The baggage it brings in the name of reproducibility is not justified in my eyes.
Because a) They're not the only ones working towards it, but they like to paint it that way and b) Their implementation is not the only correct way, and again they like to paint it that way.
The main people behind it may not feel like that, but the hype creates a very repulsive aura around the project for some of us. I just don't want to touch NixOS just because of the community and hype around it.
There are many ways to achieve this reproducibility, and the old school ways are not very behind when compared to NixOS. Some things are achieved differently, but it's perfectly achievable with Debian and RedHat packaging infrastructures.
I don't use NixOS, but from what I've read, you should just use NixOS.
All kidding aside, I installed NixOS (it installs like any other distro, it's just that after that you are completely lost), but it's a real paradigm shift.
I'm just hoping for Ubuntu Declarative Donkey at this point and hope someone addresses the learning curve and the specialist language and tools used. I'd hate to invest all this time and then all other distros finally respond and it was not really worth it after all. I mean it looks to me like one can just put a Yaml file at the heart of Ubuntu and make that work. At least as step 1. Why is there no response from the classic Linux vendors? There are atomic distro's yes (ie Fedora Silverblue), but no real NixOS-like product. I want my personal system to live in Git.
I don't use NixOS, or have any great interest in it tbh. But this podcast featuring Martin Wimpress (of Linux Mate and other projects) does a decent job of describing what NixOS is, and previews some ongoing and upcoming efforts to address the learning curve and lingo around it.
Great suggestion, I find Martin Wimpress to always be very clear and insightful. I myself listen to most Jupiter Broadcasting podcasts [0]. On their "Linux Unplugged" show [1] they did a NixOS challenge recently. There is an accompanying Matrix channel for noobs which can also be a great resource! See an overview of resources here: [2]. It's a fun community.
I think NixOS tends to be mentioned more often than others because it provides a lot of clean solutions to common problems. Especially when some people claim these common problems are unsolvable, but NixOS does offer some sort of solution (that of course comes with it's own set of tradeoffs, every solution does).
If someone says "It's impossible to run a popular website with client-side analytics" and you frequently hang out on popular websites without client-side analytics, wouldn't you share those examples to show that the person might not know about those and could further their understanding?
It’s more like people trying to fly but the best they can do is glide off some hills. And then someone with a helicopter flies by them.
Package managers before nix simply didn’t solve the problem properly - they left behind garbage, couldn’t properly deal with multiple versions of the same package, etc. Easy way to check whether the package manager you have in mind is “sufficient” is to install the gnome group and the plasma group and remove them. How many orphan packages will you have as a result?
It is not a cult, people just like proper solutions to problems, and nix is unique in this regard.
Sure there is no silver bullet. However, I don't know about anything which would since this flathub problem as well as Nix:
* Works on all (most) distros
* Builds the packages from sources, binaries are only a cache to speed things up.
* Bonus: already has a lot of software packaged
And proprietary works in the system too, the build step can just download the binary from internet. It's not a preferred way to do it, but you don't have to build a broken system just because of few packages without source access
I mean you can't wander into a discussion about packaging without coming across a solution that does it well. Disclaimer, I do use NixOS as a daily driver now and it's not a panacea but after years on other distributions, it really is a breath of fresh air, so I'm not suprised it has many advocates.
No, there's way too much and too deep open disagreement among Nixers for NixOS to be a cult. :)
More seriously, people who run NixOS are, generally and historically, people who have a lot of experience with package management and people who choose their Linux distro based on the tooling rather than based on defaults.
The Nix approach is conservative in some wonderful ways that are likely to appeal to longtime Linux users who appreciate the strengths of old-school system package managers as well as the defect of those systems, which makes Nix people want to cry out in response to container-based package management:
> You don't have to go that far! You can have all these benefits but keep fine-grained library sharing! The choice between static and dynamic linking is a false dichotomy!
because if you love what's great about traditional package management, that's really exciting.
Rather than being a cult in itself, there's a crowd of very vocal fanboys similar to the RIIR stike force. Pestering people with "why don't you use $thing" is not good advocacy.
Point of order: I didn't say "you should use nix", I said "oi, nix is actively doing that thing you said was impossible", and suggested that they should do that themselves.
Indeed the communication factor is critical. I've been around long enough to see plenty of good tech fail simply because backers are not very good communicators and I think the top level comment is a great example of this. I am just a lowly end user, I just want to be able to install and run the latest version of PrusaSlicer or Zoom on whatever Linux distribution I am using. I don't obviously see how to do that with nix and I don't really want to spend the time to figure it out, while the folks behind flatpak seem to have made it a trivial experience.
> I don't obviously see how to do [install the latest version of Zoom] with nix and I don't really want to spend the time to figure it out
nix-env -iA nixpkgs.zoom-us
or if you prefer,
nix profile install nixpkgs#zoom-us
That said, the Zoom package in Nixpkgs is (IIRC) actually extracted from the upstream Snap distribution of Zoom, and the Flatpak version of Zoom is actually the one I last used on NixOS. :)
(For proprietary software like Zoom, I think Flatpak might be preferable even to many Nix users like me.)
Although it provides its own solution to the Linux packaging problem, it's a single solution that comes with a whole load of baggage with it. It is not the panacea its proponents wants us to believe it is.