Hi everyone!
I saw that NixOS is getting popularity recently. I really have no idea why and how this OS works. Can you guys help me understanding all of this ?
Thanks !
Hi everyone!
I saw that NixOS is getting popularity recently. I really have no idea why and how this OS works. Can you guys help me understanding all of this ?
Thanks !
Oh boy my two cents time!
I love the concept of NixOS. A fully declarative , reproduceable system from a single config repo! Sounds theoretically like it would be my kind of thing.
Sure, theoretically, I could have a fully reproduceable system. The time spent declaring that fully reproduceable system though… I remember the first time I was trying to get my usual disk setup of, a luks encrypted btrfs partition with multi-factor enabled decryption/authentication.
On a normal install it would take like a day at worse to install your distro. My first attempt with NixOS took me almost 4 days of screwing around in configs. 2 of those days were probably cumulatively spent waiting for the config option list of the nixos manual to search for text. And the number of redundant config options which all do the same thing! Or, are supposed to all do the same thing but in actuality, only one of them does the thing they are supposed to.
I really want to love NixOS but it always ends up feeling like an exercise in my patience and time to do even the simplest of things. As such I find myself asking the question of, am I going to spend so much time reinstalling my distro that it’s ever worth this initial investment?
Anyways, rant over. I actually have been debating switching back over for another try again myself I just have some very frustrating memories of my first attempts with the distro.
Interesting, my first install of NixOS was done in a few hours and included a feature that I had not used in my previous Arch install, namely secure boot. It proved to be no issue whatsoever.
I do agree though that you’re looking of lost without search.nixos.org, and documentation is lacking. E.g. did you know that enabling Plasma sets your main font to Noto, regardless if you’re actually using Plasma or just have it as an option in your display manager? Or when to enable a program or service rather than adding it to your system packages? Or that if you install plain obs and some plugins, the plugins won’t actually work?
I do understand why this is the way it is and I do think it’s the better approach. But it’s not perfect.
On the other hand, my system works very well in daily usage.
I’d disagree with this. There’s an initial learning curve for the Nix language and configuration, but i’ve found it’s much easier to configure a NixOS system than pretty much anything else. For instance, I wanted to try pipewire instead of pulseaudio, and the switch was as easy as
services.pipewire.enable = true
… The NixOS configuration will automatically pick up that it’s mutually exclusive with pulseaudio, let you know that you should disable that option in the config, and then boom. It’s often the case that you can just enable services in NixOS and it will set them up for you completely. It’s kind of great. Another example is that I can just say “hey, make my keyboard layout Dvorak” and it will automatically configure that everywhere, even in Grub… Which is just amazing, I tried to figure out how to configure that in Grub before and just failed — didn’t think it was even possible.But beyond that, it’s super worth it if you manage multiple machines. Keeping packages and custom configurations in sync between desktops, servers, and laptops was a huge pain before NixOS for me, and any reinstall would be a few weeks of “ugh, how did I set up this thing again?” Now I just point it at my version controlled config and say “make me a computer” and it does it… The learning investment for me was paid off within a few weeks easily, but I’d understand if you only have a single machine and don’t really need to worry about that so much. This plus all of the other advantages in Nix (like easy rollbacks, dev environments, distributed builds, etc…) just make it such a no brainer for me. It really is a fairly elegant solution to many problems, and it’s hard to believe you lived without it once you get into it.
That said, I did personally bounce off of Nix a decade or so ago. It used to not have much polish, reproducibility was a huge pain before flakes, and nixpkgs didn’t have that many packages. It’s improved a lot in the past few years, though. Flakes are great, nixpkgs has everything under the sun, and even the config options that you complained about seem to be getting cleaned up… So it’s worth another gander if you’re interested in the ideas behind it, but had troubles before… Plus I think it might just take a couple attempts to really grok it for some reason.
Also to keep playing the devils advocate and because I love this article. Though the original blog post doesn’t seem to exist anymore, I found myself agreeing with a lot of these points as things to consider.
http://web.archive.org/web/20210730005950/https://hands-on.cloud/why-you-should-never-ever-use-nixos/
You’re talking to a NixOS evangelist, logic won’t work