I'm not familiar with that side of Linux as I'm primarily a user. But that's how our devops pipelines work to ship apps/websites. We're shopping the entire working package with every update, and rolling back with issues. It's a fantastic system since as a developer, I can isolate problems.
I never thought about that on a OS level. And I support it!
We've known since the 1950s that our configurations should be declarative, to make them resilient to necessary changes to our software stack.
Instead of coding exactly what change needs made, we ought to write a config that declares the intended outcome, and then do extra work to write code that correctly interprets that config.
But making config management declarative is a lot of work. So fuck that noise. I'll do it in bash, instead, again.
Nix actually IS Bash under the hood. It uses Perl and Bash to create an atomic installation. I tend to do a LOT less maintenance than Iād need to do if I rolled everything from scratch in Bash.
Changes to a declarative operating system, such as NixOS, are atomic. This allows for easy experimentation and rolling back to older configurations.
For example say you install gimp for editing photos. Normally you'd just install it using command line or a clickidity gui program. But say you don't like it. Maybe it causes an issue. Then you have to uninstall it again. You are applying yet another action to the same system. That system is mutable, or modifiable, and that introduces some extra complexity.
With NixOS you can simply roll back to the previous state you had before installing it. It also doesn't have to support stuff like uninstalling. The downside is that it likely uses a bit more resources when changing configurations.
This also applies to stuff like user management, services, e.g. a webserver.
Any experts correct me if I am wrong, I haven't tried any of these systems yet.
I'm not against immutable distro's on principle. I imagine they still have some kinks to iron out, but I haven't looked in on them for a while.
My opinion on these things is; if it's a superior system, then it'll become the new standard, that's always what happens, and the naysayers are largely irrelevant. Just like computers, smart phones, the internet, etc.
Yeah. I think they'll catch on in much the same way that lock files have become the standard in many languages. IMO, it just makes more sense to declare all dependencies atomically. I also think/hope it will supplant our overreliance on Docker containers to achieve these kinds of guarantees (where it actually makes sense or presents undeniable benefits).
In the case of docker I'm already at the point where I no longer think it's necessary. At my current job our stack is JS, PHP and Python. 3 interpreted languages, we then build on Ubuntu and deploy on Ubuntu. I don't think our project really needs docker, even though it does. We also have wasm/wasi prepping to eat Docker's lunch.
Honestly how I feel right now, well kinda. I was using fedora silverblue but apps kept crashing and shit just wasn't working out how I wanted. I was excited to try VanillaOS until I did... It was annoying. I was hoping for a system that made it so I can seamlessly use dnf, pacman, and apt in the terminal and it would figure out all the containers for me but not at all. VanillaOS was too much of a hassle to keep track of everything and was just eh. I got fed up enough so I just installed NixOS today and so far I'm loving it. It's not as hard as I thought it would be but also I'm not doing anything to advanced yet. I plan on messing around with home-manager later. So far NixOS seems like it's exactly what I was looking for but all this time I avoided it
They have two. If the complaint is that neither wiki is as rich as the Gentoo or Arch wiki, consider that perhaps NixOS users don't need as much supplementary advice for configuring their systems.
I tried bazzite, unfortunately I had some odd quirks that I can only attribute to an immutable OS. Things like window and UI scaling wasn't consistent. My mouse cursor would blow up to twice the size when hovering over one window then shrink back down on another. I can only guess this is because the base filesystem is only readable and it can't write any values for scaling on certain themes/window decorations. While not a huge deal, it comes off as sloppy and inconsistent. It's not a great user experience and first impressions are everything. It's easy to make a first impression, it's damn near impossible to make a second one, and my first impression of an immutable OS has been soured. I installed mint 22 and it's been a completely different experience, from window decorations, to time shift backups, system updates, Bluetooth, cinnamon theming, it just works out of the box with little to no setup.
I posted this meme in three places. Did you not read any of the threads where old, cranky FHS luddites came out of the woodwork to angrily dismiss the concept of immutable distros?
None of which are in this picture. The person in the picture talks only favorably of immutable systems yet is apparently against them, thus making for an easy target by arguing against themselves, so a straw man.
I'm actually positive to immutable systems, I just thought the argument wasn't great. I realize that's about what Skinner does in the meme, but it feels weak.
On second thought, I think the reason it was so jarring is because normally points against Skinner are in top picture, and the bottom picture has him abandon that line of thoughts in favor of something simplistic, thus changing his mind from one side to the other. Whereas here, the points against Skinner are at the end point of the meme, and thus he argues in both directions simultaneously.
Who actually hates on declarative/immutable distros as a concept? Its always the actual usability of the specific implementations thats the problem. Stale packages, poor documentation.
True, but it uses a common language in its Playbooks, which is a significant advantage. I'd like nix if I didn't need to use nix the language. It's great concept and the portability is awesome.
Then call me out of touch because I think that immutable distros are a step backwards, and systems with bumper rails are for newbs who are afraid of the changeability that experienced users want and need. If I wanted a system to make all of my choices for me, then I'd just use iOS on an iPad.