377
Principal Skinner on Immutable Distros
(infosec.pub)
Post funny things about programming here! (Or just rant about your favourite programming language.)
Are we back in time 30 years when resettable systems were a new thing and controversial?
Not really. Now they're old and controversial.
Perhaps! I'm a big fan of immutable distros. This meme was inspired by being called an asshole for agreeing with another commment, calling it a skill issue when this one commenter flat out refused to acknowledge ANY of the positive aspects of them.
So you made a meme about how your opponent is completely irrational and you are a paragon of logic and reason, and then proceeded to declare yourself the winner?
Congratulations, you've learned how memes are created!
I really didn't declare myself the winner. IMO, I won't have to when the software will do that when this way of working usurps container-style development as the de-facto standard.
As an actual old man who was able to adapt, I simply pointed out that OP sounds like an old man, unable to acknowledge an obvious trend where immutable systems are clearly gaining popularity and are seen by many as the correct way to provision a mission-critical system.
I suspect the tooling isn't quite there yet for desktop use cases.
If I were to try to replicate my current desktop in an immutable model, it would involve a lot of manual labour in scripting or checkpointing every time I installed or configured something, to save a few hours of labour in 2 years time when I get a new drive or do a full install.
The case is easier for defined workload servers and dev environments that are regularly spun up fresh.
If you have only one system, you might find the benefits not to be worth the bikeshedding effort.
However, I suspect that you'd be surprised with how easy it can be using home-manager. I have literally nothing that I need to do to a newly compiled NixOS system from my config because EVERYTHING is declared and provided inside of that config.
If you don't mind, can you give me an example of something in your config that you think is impossible or difficult to port to the Nix style? I'd be happy to attempt to Nixify it to prove my point. I've pretty much figured out how to do everything in the Nix way.
and I don't mind if I end up being incredibly wrong on this point and promise to be intellectually honest about it if I am indeed wrong. It just sounds like a fun exercise for me.
I guess the assumption is more that for me, a fresh install is often about decluttering as much as anything-- the five Wayland compositors, three music players, and six pseudo-IDEs I tried and didn't like don't need to follow me to the next build.
In a conventional install, that just means "don't check the checkbox in the installer next time". In a Nix-style system, this is a conscious process of actively deciding to remove things from the stored configuration, no?
I suppose the closest I've gotten was recently migrating my setup from a desktop to a new laptop. Mostly copying over some config from my home directory, but even then, I wanted enough different stuff-- removing tools I don't use on the laptop, adding things like battery monitoring and Wi-Fi control-- that it involved some reconfiguration.
I’d actually argue the opposite in regards to clutter. If I switch to a new config without the software I don’t want anymore, that software goes away entirely when I do a garbage collect and there’s nothing left over like there might be in ‘’~/.config’’ on a non-immutable system.
IMO, the actual realization of Dolstra’s dream is flakes and home manager. They allow you to boil your whole config down to a git repo where you can track changes and rollback the lock file if needed.
I find it nice to open my config in an IDE and search by string inside of my config where I can comment out whatever I don’t need. Laziness also makes that pretty convenient too. Nix will only attempt to interpret what is accessible in code. If I comment out an import, that whole part of the config seamlessly shuts off. It’s quite elegant.
I’m even more envious of the atomicity of GUIX but IMO, it’s a little too much building the world from scratch for a newb like me.
What skill? This is not a fucking game lmao. I don't use an immutable distro because I have better things to do with my time than to try and climb a steep learning curve using some very questionable documentation. I can acknowledge the benefits, but I also acknowledge it's gonna take me time to get there. And I judge that the time investment is not worth it.
Clearly, it’s not a skill issue with you but with the dude that inspired this, my assessment was that he was flat out unwilling to learn and flat out unwilling to acknowledge that there are clearly some benefits to this style. Seems like you already grasp it but don’t feel like committing the time. I respect that much more than the blind dismissal that inspired my meme. ✌️
RFC 1925(11)
https://datatracker.ietf.org/doc/html/rfc1925