Going back to Arch has felt like a breath of fresh air. Everything is simple, easy to understand and incredibility well documented. Using a snapper pacman hook I can now revert my system to undo updates, which was the main functionality I found useful in NixOS.
Also, Aeon has first party support for running cli and gui things in distrobox. You can pull down an OCI container of virtually any distro and do whatever you want in it. Distrobox lets you expose applications from the container environment to the Aeon desktop.
Hypothetically, you could use Aeon as your rock solid core and tinker in distroboxes, including refining the install script to making a custom OCI container. Not trying to convince you - just saying there is a lot of easy to access flexibility there.
It's hard to give up the Arch PKGBUILD system though, it's an even simpler ebuild which was originally why I loved Gentoo so much.
back when I was using arch I wrote pkgbuilds instead of configure/make/installing to my home folder. kept my ./local/(bin|lib|share) clean and meant I could update it easier or uninstall it with pacman.
As to runnning random build scripts, well I already do that anyway. Any software that isn't provided by my package manager requires me to run random build scripts from random people. I sure as hell am not reading through every line of code in say... trealla prolog before make-ing it.
This is exactly what a tech savvy user would do.
Honestly, I think AUR is one of the best things to ever come out of Linux, because it's not just a repository.
> plus PPAs in the form of other OBS repositories if you really need them, but you almost certainly don't
This is extremely presumptive and wrong. I find it very frustrating that any issues with these official repos is dismissed as "oh but you don't need extra PPAs ever". My guy, yes, I do. It happens way too often and it's very frustrating when it does, because the options for handling it in non-Arch based distros are completely insufficient and terrible.
But then again, what do I expect. Any complaints about Linux are pretty much always dismissed out of hand.
I actually prefer using Windows because Windows users generally aren't such arrogant pricks when there are issues.
The regular user only installs software others have packaged.
I end up packaging software sometimes (maintain a few AUR packages) but my main use-case is being able to modify the packaging myself for private use, generally to apply custom patches or alter compiler flags etc.
Being able to do all of this easily without ending up with a pile of goop everywhere from `git clone thing && cd thing && make && sudo make install` is nice.
It's not like whichever broke your upgrade is going to disappear if you simply try again.
And what was the reason you were even upgrading in the first place? Likely precisely because you needed the upgrade in order to "get on with what you originally wanted to use your computer for" ?
Sure you can fix whatever you did wrong, but that might imply quite a few things and take time. If you go to the snapshot prior to your changes, it takes a lot less time (just a reboot), less guess work, and you can continue working from a blank slate.
One of the most common scenarios of breakage happens when a user adds a 3rd party repo that at times lags behind the Tumbleweed release cycle. Libraries and application versions suddenly conflict and the user could have a partially or fully borked system. A rollback to the last good snapshot makes a lot of sense - the 3rd party repo will usually catch up in a day or two, and the update that previously broke the system can be safely applied.
Then I have a home cooked backup script that runs daily to a remote server, so in a worst case situation, I reinstall, 15 minutes, and then copy my dot files and other stuff which might take another 5-15 minutes.
So for single person use, or small environments of 20-30 servers or so, the traditional old model works well.
https://news.opensuse.org/2024/06/12/leap-unveils-choices-fo...
It might be the last OpenSUSE using the traditional release model, but it's not EOL.
I mean, that's the point. If the configuration of the machine is declarative it's easier to replace it with a duplicate that works. Declarative in this context literally just means "the entire state is declared in a way that you can roll it back"
For me that’s pretty wild. It makes it trivial to have both staging and prod in sync by just pushing to a repo. That means you get a better overview of the system state, and can experiment more freely knowing the machine won’t end up in a weird state. And while Nixos is hard to debug and occasionally hard to write, I find the format very easy to read.
However for my personal computer, I found that it’s overkill and now I just use a dotfile manager and save my installed program names in a list. I do think nix really lacks documentation for very basic things, and for that guix is better (but I found guix harder to write and read).
I moved from Arch to NixOS. In case it helps these are my main motivations:
* In Arch, very rarely, I'd apply an update that would break things. Going back to a stable system was a pain. I ended up with some snapper setups and a list of commands to convert the latest snapshot to a r/w 'root' that worked well enough. With NixOS I just reboot to the previous generation on any issue.
* For development I'd often use third-party tools to manage multiple language versions. For example I used pyenv. With Nix it's much easier to just use python39, or nodejs-18_x, or whatever as Nix makes this really simple.
If you do decide to try it out I'll recommend using the github query 'path:*.nix ___' to copy off others, as the main complaints about Nix seem to center around the language.
I've been using ArchLinux for ~14 years now, previous to that I used Slackware and Gentoo. IMO it's better to be simple, yes there aren't any guarantees but worst case scenario I can rebuild, run my install script (which might require a few tweaks if it's been a while since I setup a new system), push new keys etc and then I'm up and running again in ~15 mins. i.e I think it's easier to repair or replace a simple system than it is to try work out how to do novel things on a complicated but safe system.
I intend to try NixOS at some point as a foray into these more complicated but "safer"/transactional/immutable/deterministic systems but I just haven't found the motivation yet.