...to get a working config, you need to learn a whole new programming language and figure out the tweaks for each package you want to install, so I'd argue the journey is just as long
I'd personally advise against NixOS as a first distribution for that matter. It's a great distribution, but if you want to understand the underlying mechanics, start with something where you interact with them, like Arch or whatever.
Adding applications and rebuilding is generally trivial.
The problem becomes if you want to use flakes or home manager, which you probably should. The config for those is complicated and poorly documented.
I don't know the programming language. I've been running it for about a month now. If you're not doing anything complicated or doing any crazy conditionals or running one config for 27 boxes it's no different than editing a yaml.
It took me about 2 days to get Nvidia working properly with offloading that was my hardest task so far.
Well, I "did it" for an evening once, it was fun. The next day it got annoying REAL fast. But I do keep the config around, so I guess I can just go back to it eventually to keep doing it.
Well not everything is packaged and when they aren’t it Can get more complicated to install since nixos doesn’t use the default file system layout. Another thing is that certain programs have assumptions about being able to do certain things like changing their own config files that don’t work well with the nixos way of doing things. (Looking at you fish(it works but you can’t manage your configuration for it(pretty sure?)with nix))
not to mention how many things they want to go through their system. getting vim set up “their way” while also trying to install python3 support, vimtex, and plug-vim was almost impossible. not to mention finding a way to store the vim configs separately from the rest of nixos. (i use vim on multiple operating systems so switching everything to the nixos wasn’t a viable option.)
maybe there was a better way to do it that i didn’t know about, but boy did i try to find it.
you can just include dotfiles and the like in a nix config, while it's not the recommended way it usually works
in my experience installing support for most things is way easier on nix, as long as they're already packaged well. I'm still scared of the eventual time when I'll have to create my own package for the nix store to install from source
You still need to figure out the tweaks on other systems. Unless you want the Nvidia machine learning to complain that your C compiler is the wrong version and exit. Or maybe you'd prefer to deal with a package calling ps and parsing its output (?!) but you have ps that's a different version so the output doesn't parse the same
I mean, when have we ever had a system that is working without any tweaks? Once you install third party packages, there's so many things that can go wrong
nix being 20 years old and still lacking decent documentation on the language it's what hurts me the most, because the people who do know it works so some amazing things with it
How often do you reinstall your OS? In practice never, I installed Arch around 8 years ago on one computer and that's the install I have today still. I copied it twice to a bigger SSD but that's kind of it.
There is a certain thrill when you nuke your disk to install a distro you never tried before. I actually just nuke one of my laptop last night to try void linux.
Yeah, I don't think that's the best selling point for desktop use. For me it's having all my configs for all my devices in a single place, checked in git, with bits of config I can easily share between my different devices.
Easy install is not the only benefit. You also get fearless upgrades. When I upgrade my Nvidia driver and it inevitably exposes bugs in one of my apps, I can always jump back to the previous build version without uninstalling anything.
Every few months or so? There is always that one distro that sounds cool and maybe it's better than what you are using atm.
Yeah, sure. It's mostly a waste of time and I keep coming back to Arch after a few days, but without this drive I would not have ever tried Arch in the first place. So because of this I found my favorite distro, but I can also never be 100% sure it's the best distro. Pros and cons, I guess.
Same. Even for Windows…why reinstall so much? I installed W10 1607 and I’ve just been installing updates. Same for my Linux machines. Just upgrade and be done people.
I didn't reinstall my OS because I wanted to. Ubuntu messed up the upgrade from 20 LTS to 22 LTS. There was some message in the console, but an hour later I forgot about it and shut off the computer without checking the message again
When it came back it was a terminal and I had no working WiFi. I googled how to do WiFi on Ubuntu from the terminal, but the answers all told me about the previous WiFi on Ubuntu and I didn't even have that daemon
Eventually I wiped the drive and installed NixOS because it backs up your previous configs. When an upgrade fails you just undo and go to the previous working version.
Installed 22.04 few months ago, did my configs, and then subscribed to Ubuntu Pro (free for five devices). Now I can enjoy a stable experience for at least a decade.
Nix is not something exclusive to NixOS, and people are already using it to make reproducible configs that work on more than one OS.
I'm even using Ansible in what I'm currently building with Nix, because it does one thing well that I need to do: distribute files and run commands on a lot of hosts at once.
In my head they're different use cases. Nix is amazing for a living build. Ansible is more pigeon-holed to production systems where you don't want (or need) that history baked into every system
That is, until a new Ansible version breaks playbooks again, or an OS is updated in a way that messes with you playbooks, or a package is removed from the playbook but not the installed system...
Ansible is good for ephemeral containers or VMs, but any more permanent system will eventually deviate from the set configuration.
NixOS is still a Linux system, and the configuration still translates to stuff you have in a very similar way on every other Linux system too (with the exception of what's needed for the file system layout to work). It's not some kind of magic. I've probably learned as much stuff applicable to general Linux distributions as while using Arch and Gentoo.
Of course, if you only use the high-level options and the graphical installer that may be different, but then comparing it to those distros is very disingenuous.
Mhm. The exact same reason why I would recommend them to anyone that actually
wants to know how Linux works, the dos and donts (like why having 2 or more package managers is a REALLY REALLY bad idea).
I am a Gentoo user and most of that is already a reality on Gentoo systems. Get the stage3 tarball set up, slap your /etc/portage/make.conf and /var/lib/portage/world files in there and build.
Obviously, depending on whether it should be a blank system with the same apps installed or a clone of a previous system, configuration in /etc and one's home directory may need to be copied, too.
I think Endeavour OS is like that too. I have 2 "unfixable" bugs on my arch installation that can never be removed. I have to manually do 2 annoying workaround tasks every time I turn on my computer before I can use it and this will likely never go away. I've been told both these issues can't be fixed without a complete os reinstall and even then it might not go away. I booted into an Endeavour OS live usb and what do you know, both those bugs were fixed out of the box. Endeavour is based on Arch. The kernel it was running was a kernel number release after my installation developed both of these "forever" bugs.
Arch is great and all but holy fuck I'm sick and tired of this fucking bullshit all the time. One of these times I'm going to type sudo pacman -Syu and it will develop yet a third unfixable forever bug. This is the same shit that drove me away from Windows: uncontrollable degradation over time that can't be fixed without os reinstall. Even Gentoo isn't this unforgiving.
I can sympathize, but moments like that are good to test backup solutions. I replace the drive, pretend the first one died, and see how hard it is to start over. Turns out I'm not very good at backups and always miss stuff. :(
The end result is a bug fixed and some lessons learned.
Try Void, stable AF IMO. I have yet to run into "unfixable bugs" (whatever that means). And even if there are, you open an issue on GH and there will be a patch most likely. If it's a kernel bug, you'll just have to open an issue on the Linux kernel git repo.