where i get into trouble is when i do a bunch of nixos-rebuild —switches between restarts and some state ends up hanging around, so next time i do a reboot that ephemeral state is gone and whoops no internet
I just don't get these for a bare metal system. Containers? Sounds great. Definitely on board. Bare metal? Debian, standard fedora, or gentoo is what makes sense to me
At that point, make it a thin client which boots from a network image and logs you into a terminal server.
Then you have the hardware and software resources you need for your role wherever you are.
Fedora Atomic has been working nicely on my personal laptop. Anything funky, I tend to run in a VM w/ libvirt (KVM/QEMU) or a container. Makes it quicker to fix if I break something.
Maybe it's time to join us in NixOS land. When you have the immutability on top of the whole OS and the language controlling it, things tend to work a bit better.
I'm Sorry we don't have the "))))))". Just a weird ass language.
I had this with a sunshine service being added as a user service in bazzite.
I created a clean new user and it booted, confirming it was user based.
Took a bunch of binary searching to work out what the issue was.
I've since done my own autostart setup for sunshine and it's been fine ever since.
Yeah, thinking I might have to do something similar to start the services after login. Unfortunately they need to run as root, so it'll be tricky to avoid having a second password prompt every time I login
You are allowed to modify stuff but it is not actually changing the install as is.
This is achieved by different techniques like file system overlays, containerisation, btrfs snapshots and so on.
The idea is to replicate the classical behavior you know from embedded devices that have their core functionality in ROM with even firmware updates only overlayed or modern smartphones: You can modify your system but in the end there's always the possibilty to "reset to factory settings" as in: the last known working configuration.
Kinda. Generally the user files (including custom installed applications) are on a rw partition. Whereas the system files (OS files, root folder, etc) are on a ro partition. When updates are applied to the core system they come as complete images. No compiling from source on the fly.
The advantages to this is that it should be near impossible to break your system. If you need to roll back to a previous version the system just/downloads/mounts the previous image. There is less flexibility in terms of changing system files. But the idea with immutable distros is that you shouldn't be modifying system files anyways, and there are different ways to accomplish things.
A really good example is Android. Android (non-rooted) is kinda-sorta an immutable distro. Except it uses an A/B partition method, where the active system downloads and installs to the other partition, triggers a flag, then a reboot picks up the flag and boots from the newly installed partition. If anything goes wrong, another flag is triggered and it boots from the "good" partition.
It's not quite the same, but at a high-level it kinda is.
Someone might correct me if I’m wrong but it’s that, plus extra tooling to redirect the stuff that needs to be writable, plus more extra tooling to allow you to temporarily unlock the read-only parts in order to do system updates, plus a system updater that puts the whole system more-or-less under version control.
I recently brought over some ideas from VanillaOS over to my Arch install.
Install as much as possible via flatpak
Install a bunch of other stuff in distrobox (with podman backend)
That gives me like 50% (idk fake number) of the features from VanillaOS, but I get to keep control over my system.
Not that I ever had any problems with native pacman installs though... so... not sure how much benefit I'm really getting from doing this. I guess my pacman -Syu command runs faster now. That's something...