ITT - “I DISAGREE WITH THE FACTUAL ACCURACY OF THE SETUP AND/OR PUNCHLINE OF YOUR JOKE.”
Nixos: everything everywhere all at once
I’m still a Linux noob all things considered, and I’ve been using NixOS for six months or more.
It is HARD, but I see the true value of it. I will never need to reinstall Linux because I broke it, that’s simply impossible.
If I ever need to migrate my system, it’s all backed up to github. With a single
Bash update.sh
every single .config file backed up, system upgraded, all packages updated.
I just love Nix, it’s the perfect OS for me.
Now I just need to learn how to use flakes…
Sidebar: I’ve never asked before, but maybe someone can help me out. If I install a flake of an application, am I supposed to add it to the existing flake, or can I modulate flakes?
I’ve noticed when installing the nixvim flake it generates a new flake and it runs when I issue the
nix run ~/.dotfiles/nixvim/flake.nix
command, but I don’t want to have to run that command every time. I feel like making a fish abbreviation isn’t the correct way of doing this.
So I’ve only been using nix about a year and only used flakes. I use in two ways.
First, I have my main nix flake. Most everything is controlled from that. It has several outputs from full blown nixos builds per host or some home manager builds for non-nixos systems.
Third-party flakes I use as inputs to my own flake then use the override system to inject them into nixpkgs. Then I just install whatever like normal from nixpkgs. I can either override an existing pkg (neovim nightly replaces regular neovim for me), or you can just add as a new package to nixpkgs by using a different attribute name.
Second way is for projects with their own repo. I’ll add a project flake that has a devshell with direnv so as soon as I enter that directory it sets up a sort of virtual environment just for that project. You can add outputs to it so others can use as a third-party flake.
My main starting point was https://github.com/Misterio77/nix-config for this design.
I think I’ve put fedora on at least 4 personal systems and it has never caused an issue. It’s so smooth it’s boring in the best way. Switched to it for daily computing about 4 years ago. I use a minipc as a media server with Arch and turning it on it’s exciting. Just this fucking morning the default configuration decided that my main audio device was a microphone. Lovely. So flexible.
On the other hand, my server running Arch testing has never had any issues. In fact, the only issue on any of my devices, all Arch testing, was nvidia.
I eventually landed on Fedora too. Its level of “it just works” is amazing.
I mean, sure Arch is flexible. All good footguns can mutilate me in a bunch of different ways.
I’ll never stop hating that debian is labeled stable. I’m fully aware that they are using the definition of stable that simply means not updating constantly but the problem is that people conflate that with stability as in unbreaking. Except it’s the exact opposite in my experience, I’ve had apt absolutely obliterate debian systems way too often. Vs pacman on arxh seems to be exceptionally good at avoiding that. Sure the updated package itself could potentially have a bug or cause a problem but I can’t think of any instance where the actual process of updating itself is what eviscerated the system like with apt and dpkg.
And even in the event of an update going catastrophically wrong to the point that the system is inoperable I can simply chroot in use a statically built binary pacman and in a oneliner command reinstall ALL native packages in one go which I’ve never had not fix a borked system from interrupted update or needing a rollback
You are maybe conflating stability with convenience.
“Why is this stable version of my OS unstable when I update and or install new packages…”
The entire OS falling down randomly on every distribution during normal OS background operations was always an issue or worry, and old Debbie Stables was meant to help make linux feel reliable for production server use, and it has done a decent job at it.
I mean when I can take an Arch Linux installation that I forgot about on my server and is now 8 years out of date and simply manually update the key ring and then be up to date without any issue but every time I’ve ever tried to do many multiple major version jumps on debian it’s died horrifically… I would personally call the latter less stable. Or at least less robust lol.
I genuinely think that because Arch Linux is a rolling distribution that it’s update process is just somehow more thorough and less likely to explode.
The last one with debian was a buster to bookworm jump. Midway through something went horrifically wrong and dpkg just bailed out. The only problem was that it somehow during all of that removed the entirety of every binary in /bin. Leaving the system completely inoperable and I attempted to Google for a similar solution as arch. Where i could chroot in and fix it with one simple line. But so far as I was able to find there is no such option with apt/dpkg. If I wanted to attempt to recover the system it would have been an entirely manual Endeavor with a lot of pain.
I would also personally label having the tools to recover from catastrophic failure as being an important part of stability especially when people advocate for things like Debian in a server critical environment and actively discourage the use of things like Arch
If the only thing granting at the title of stability is the lack of update frequency that can simply be recreated on Arch Linux by just not updating frequentlyಠ_ಠ
No opinion on Debian but as a heavy ArchLinux user I should point out you shouldn’t upgrade without reading the news as occasionally manual intervention is required. Upgrades can and will break things if you’re not careful.
https://archlinux.org/news/openblas-0323-2-update-requires-manual-intervention/
https://archlinux.org/news/ansible-core-2153-1-update-may-require-manual-intervention/
https://archlinux.org/news/incoming-changes-in-jdk-jre-21-packages-may-require-manual-intervention/
I mean when I can take an Arch Linux installation that I forgot about on my server and is now 8 years out of date and simply manually update the key ring and then be up to date
That won’t work, old pacman versions can’t deal with the fact that packages are now zstandard compressed. In fact, the window were you could successful do the update without a whole bunch of additional work was something like a couple of months. Certainly a whole lot less than a year.
Did you go buster -> bullseye -> bookworm or just straight to bookworm? It sounds like something got screwed up with the usr merge.
While I personally agree with your sentiment, and much prefer arch to debian for my own systems, there is one way where debian can be more stable. When projects release software with bugs I usually have to deal with those on Arch, even if someone else has already submitted the bug reports upstream and they are already being worked on. There are often periods of a couple of weeks where something is broken - usually nothing big enough to be more than a minor annoyance that I can work around. Admittedly, I could just stop doing updates when everything seems to be working, to stay in a more stable state, but debian is a bit more broadly and thoroughly tested. Although the downside is that when upstream bugs do slip through into debian, they tend to stay there longer than they do on arch. That said, most of those bugs wouldn’t get fixed as fast upstream if not for rolling distro users testing things and finding bugs before buggy releases get to non-rolling “stable” distros.
it would have been an entirely manual Endeavor with a lot of pain.
It’s funny that your phone auto corrected or you typed a capital E out of habit. I imagine you talk about Endeavor OS a lot lol.
FWIW I’ve got a Debian server that hosts most of my sites and primary DNS server, that’s been running since Etch (4.0, 2007ish). I’ve upgraded it over the years, switched from a dedicated server to OpenVZ to KVM, and it’s still running today on Bookworm. No major issues with upgrades.
It’s definitely not something that will happen 100%. I’ve also had long standing debian systems that seem to not care. However I’ve had plenty that, for whatever reason couldn’t handle multiple major version hops and just eviscerated themselves, I’ve not had that with arch personally. You may need to download the latest statically built pacman depending on how old it is but that and a keyring update usually has you covered
However I’ve had plenty that, for whatever reason couldn’t handle multiple major version hops
Debian only supports upgrading one major version at a time. If you’re upgrading from Debian 10 to 12, you need to first do 10 to 11, then 11 to 12. Upgrading multiple versions at a time is completely untested and unsupported.
depends on workload. Debian has very old packages and can be insecure but it is a set it and forget it type of thing, it is good when uptime is critical for a server. For desktops, or servers that need better security, but can tolerate a little downtime, rolling releases are good too, if you are enough to update frequently, and you should, since updates usually contain a lot of patched vulrenabilities
Good point! But I recently swapped to Debian 12 from Fedora 41. The latter needing constant updates several times a day. And despite this, it was not stable at all.
Fedora is good on laptops since it has the very newest kernel and thus includes all the latest driver fixes (which are needed for laptops like the Framework where they’re actively improving things). On the other hand, it has the very newest kernel and thus includes all the latest bugs.