47
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 05 Nov 2023
47 points (96.1% liked)
Linux
48056 readers
713 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
Immutability is useful from a sysadmin standpoint because it solves a couple problems. It's a little easier to secure a system if you can know that, in fact, files outside the home directory have not been modified, and also, it's a little easier to keep systems running because programs can't just shit on each other's files etc.
Unless these two are problems for you, you're signing up to re-learn how to use Linux, and tbh not very elegantly, for basically no real gains at this time. Immutability has potential as a concept, but Red Hat's approach is super weird and not very efficient. They have a tool that allows you to manage filesystem trees, and then they extended this tool with RPM to allow you to compose custom filesystem trees at install/upgrade time. This approach, in my experience, is shockingly inefficient if you need to add any custom packages to your base tree and you install updates with any frequency.
If you're a sysadmin rolling out updates to workstations maybe once a month, these aren't really issues, but for daily use, it didn't seem worth it to me just yet, especially since we don't really have any neat separation of code and config like you get with Docker. You can't just zip up your home directory and move it to a new Silverblue installation and have your user back yet (there's work in this direction with systemd-homed, likely once it's good enough this will become standard, but also, that's not an "immutability" feature). I believe /etc is mounted rw, which is a step in this direction, but until lots of stateful stuff gets moved out of /etc that isn't going to be portable in the same way a Docker config is.
EDIT For a comparison of a different approach to immutability that includes a different bundle of tradeoffs, you can also look at OpenSUSE's MicroOS. The TL;DR is that it's easier to customize the base system, but it locks you into btrfs and it's not as robust overall -- https://www.ypsidanger.com/comparing-opensuse-microos-to-fedora-silverblue-37/ https://discussion.fedoraproject.org/t/understanding-differences-between-rpm-ostree-and-opensuses-transactional-update/84289/3
I just wanted to point out that you pretty much can just tarball your user directory and drop it into a fresh system. If you embrace the Flatpak and container-based workflow, it's incredibly easy to be up and running in no time. Obviously, containers and flatpaks aren't unique to image-based distros, but are perhaps less common in traditional distros.
Sure, you'll need to add a printer back, or reconnect to wifi networks, but your user and/or dev environment will carry over, and with a couple of commands, any package overlays and flatpaks will be reinstalled and ready to go.
I found flatpaks and containerization to be the only real learning curve with Silverblue, and only because I hadn't used them previously. Compared to the learning curve and unorthodox approach of NixOS, Silverblue itself is as easy as using vanilla Fedora Workstation.
I mean, is this true in any way that hasn't been true of Linux since nearly forever? You can always put your /home folder on a separate partition, install a new system, and as long as you make sure the UID of your new user matches the UID of the old user, the process is exactly the same. Just reinstall your apps and you're good to go. I used to do this to keep configuration/data between reinstalls. EDIT -- as opposed to a genuinely stateless user config, as systemd-homed is working towards
There difference is, to flatpaks and containers are in home, so you keep those even after a fresh install of you keep home.
It's freaking great, specially in a work machine, to reinstall after breaking something and be able to just continue almost as if nothing had happened.