this post was submitted on 17 Feb 2024
101 points (93.2% liked)
Linux
48212 readers
798 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
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
You should be installing software with stuff like flatpak, toolbox or distrobox. If you treat the immutable image as a mutable one there really isn't an improvement except for less of a chance of instability of updating/changing software that's running in memory already.
Git? Vim? Fdupes? A dozen other cli applications I install?
Are you saying you can't use toolbox or distrobox for that?
So the solution to my problem is to create a container for a non-immutable distro?
Yes, though keep in mind containers aren't like VMs so the hardware isn't virtualized or anything. The root system and everything in it is still immutable as well. In usage, it doesn't matter for the container but it isn't changing the root since what is writable to the container is outside of the root.
Using containers this way is the way Silverblue was intended to be used for by the user and pretty much any other immutable distro of note.
Yeah - I'm quite familiar with containers. I just don't see the value they're adding here. Maybe for experimental things or "project-specific" stuff. but otherwise don't you just end up maintaining a container same as you would your "host OS" in a non-immutable distro?
Your immutable OS stays stable. For example, running a sudo pacman -Syu with a bunch of stuff from AUR in your Arch container for example will not bring down your OS or otherwise make it unstable. The immutable image you first install has been tested and it is the same image as the testers -- same with the upgrades and updates, so long as you don't overlap the image with rpm-ostree in this case.
Immutability keeps your OS stable and if something does happen to go wrong, you just roll it back.
If that isn't something you need/want then that's not something you need/want.
It's definitely not - I've just been trying to understand the problem it solves for others though and see if it is something I would be interested in.
From what I can tell I can get all of the advantages in a "mutable" distro (flatpak, distrobox, etc.) without the overly-complex "immutable host" stuff.
I honestly don't get the fear of "some random update ruins your OS". Perhaps because I'm not an Arch user.
I am an Arch user and I still don't get it either. When Arch borks something it's rarely catastrophic. At worst it's throw in the live USB, mount your drive and fiddle. And if you are going in as an Arch user, fiddling is something you sign up for.
OK
Yeah those don't go on your host they go in containers.
So I use non-immutable distros in containers to make up for the failings of the immutable host OS?
You use containers for your tooling, you purposely don't touch the host operating system, that's the entire point.
I can do that in Ubuntu... I'll admit I simply don't see the point. Immutable distro users seem paranoid about "some random update messing up their base OS" for some reason and I guess this suits their purpose. I just don't see that as a problem.
Most people aren't system administrators and they end up with broken computers for the most basic tasks. It's one of the major reasons why people hate using Linux desktops.
And even if you're an experienced sysadmin you can't account for the entropy that accumulates on traditional OSes. 18.04 -> 20.04 -> 22.04 doesn't end up being the same as a 22.04 clean install. This is a huge problem, especially for people who don't know how to manage linux systems. And the people who do manage systems at scale don't want that behavior either.
I go over this in this video: https://www.youtube.com/watch?v=hn5xNLH-5eA
But day to day I'm in an ubuntu container and using "normal" package management, I just don't do it on the host.
If you kept a basic minimal Ubuntu host it would be trivial to maintain. And you can still do your "toolbox" stuff on top of it. No weird immutable stuff needed.
I just don't see the point. You want new users to understand containers. And to keep track of all the containers they maintain - possibly with different distros and using different things. And remember the difference between them and what is installed in each. Or just maintain one big container which is exactly what they would do normally anyway.
That's not true for most people.
You don't need to understand containers unless you're using the system for development -- which in Linux land means containers.
If you want it to be then it can. The risk of a failed update is vastly overblown.
Oh but you do. 1 hour into using Silverblue I was chastised by other users for "using it like any other Linux distro" when I started installing things into the "base" system with rpm-ostree. "Don't you know you should be doing that in a container?" I was asked.
I was just installing command-line utilities. Which I'm apparently supposed to do in a toolbox or other container which allows me to have... a mutable distro where I can do all the things I do in a "normal" OS. And which will require updating separately from the host OS. And which don't quite work right for everything because they're containers? Like you can't install
httpd
in one.Here is an alternative Piped link(s):
https://www.piped.video/watch?v=hn5xNLH-5eA
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I'm open-source; check me out at GitHub.