I recently took up Bazzite from mint and I love it! After using it for a few days I found out it was an immutable distro, after looking into what that is I thought it was a great idea. I love the idea of getting a fresh image for every update, I think for businesses/ less tech savvy people it adds another layer of protection from self harm because you can't mess with the root without extra steps.
For anyone who isn't familiar with immutable distros I attached a picture of mutable vs immutable, I don't want to describe it because I am still learning.
My question is: what does the community think of it?
Do the downsides outweigh the benefits or vice versa?
Could this help Linux reach more mainstream audiences?
I have a really hard time getting Aurora working the way all my other Linux devices so that are running some form of Ubuntu (Mate or Bodhi). With that said, it's been very stable and i like not being interrupted with packages to install while working on things...
I don't work in tech but I love to tinker , have a home lab etc. I love using Linux for this, been on Linux for close to 20 years.
Got a steam deck little over a year ago, it was my first immutable
I just moved to an immutable silver blue. Been loving it so far. There's a few things I have issues with, but it's "just works". I still distro hop and fuck around breaking my system for fun from time to time, hahahah. But having my main system on immutable has been great.
Then you have NixOS, which is declarative, and fairly immutable.
You don't have to reboot to make changes, but you can't just run unlinked binaries either.
You can't do things like edit your hosts table or modify the FS for cron jobs. The application store is unwritable, but you can sync new apps into it .
You have to make changes to the config file and run a rebuild as root.
Not when every app decides to use a different point version of the same damn platform.
"Hello Mr. Application. I see you'd like to use the Freedesktop-SDK 23.08.27
"Oh...well hello other application. What's this? You want to use Freedesktop-SDK 24.08.10? Well....I guess so..."
Edited to add: Yes, I know that flatpaks will upgrade to use updated platforms. But it doesn't automatically remove the old one, forcing you to have to run flatpak remove --unused every week just to keep your drive clean. That's hardly user friendly for the average person.
I have investigated the idea and came to the conclusion that immutable distros are essentially a research project. They attempt to advance the state-of-art a slight bit but the cost is currently too great.
Perhaps somebody will some day create something that's worth switching to. But I don't think that has happened yet, or is happening with any of the current distros. Silverblue might become that with enough polish, but I feel that to get that amount of polish, they would have to make Silverblue the 1st class citizen, i.e. the default install of Fedora.
I heard both flatpak and immutability are obstacles to developers. How bad is it really?
I've had NixOS absolutely refuse to run some compiler toolchain I depended upon that should've been dead simple on other distros, I'm really hesitant to try anything that tries to be too different anymore.
Same issue, I still use nix on m'y laptop because it's neat as can be, but I have to admit developing on nix can be quite a hassle if you don't go it "the nix way", moreover some packages don't work as well because nix doesn't link binaries the standard way (zed editor for example)
I’ve had NixOS absolutely refuse to run some compiler toolchain I depended upon that should’ve been dead simple on other distros, I’m really hesitant to try anything that tries to be too different anymore.
Yes, some toolchain expect you to run pre-compiled dynamically linked binaries. These won't work on NixOS, you need to either find a way to install the binary from nix and force the toolchain to use it or run patchelf on it somehow.
NixOS likely only refused to run it because you weren't running it in the Nix way. That's not a jab or anything, Nix has a huge learning curve and requires doing a lot differently. You're supposed to use devshells whenever doing development. If you want something to just work, you use a container.
Whatever issue you ran into most likely had nothing to do with NixOS being immutable, and was probably caused by the non standard filesystem hierarchy, which prevents random dynamically linked binaries from running.
I've never heard of flatpak and immutability being obstacles to developers, in fact I generally hear the opposite. Bluefin is primarily targeted at developers, and some apps, like Bottles, will only officially support the flatpak distribution because of the simplicity and benefits it brings over standard distro packaging.
Immutable distros are great for applications where you want uniformity for users and protections against users who are a little too curious for their own good.
SteamOS is a perfect use case. You don't want users easily running scripts on their Steam Decks to install god knows what and potentially wreck their systems, then come to Valve looking for a fix.
Immutable distros solve that issue. Patches and updates for the OS roll out onto effectively identical systems, and if something does break, the update will fail instead of the system. So users will still have a fully functional Steam Deck.
If you're not very technical, or you aren't a power user and packaged apps like Flatpaks are available for all your software, then go for it. I prefer to tinker under the hood with my computers, but I also understand and except the risk that creates.
Immutable distros are a valuable part of a larger, vibrant Linux ecosystem IMO.
Immutable are the ultimate tinkerer's distros. It's just a different way of tinkering. True tinkering in immutable means creating your own image from the base image and that allows you to add or remove packages, change configs, services, etc.
Example: you create your own image. You decide you want to try something, but you're being cautious. So you create a new image based on your first with your changes. You try it out and you don't like it or it doesn't work for some reason, you can just revert back to you other image.
Another thing worth mentioning, with these distros, you can switch between images at will. I'm new to Linux as my daily driver desktop OS, and I've rebased three times. It's really cool to be able to do that.
Don't know why this would be downvoted. Atomic distro's are a tinkerers paradise, as all of it can be done fearlessly. I can make stupid changes to configurations that I don't understand on NixOS, then when things break, simply revert the git commit and rebuild. (Or reboot to the last build if I broke it bad enough).
So Bazzite basically is an immutable 3rd-party SteamOS. It was originally designed for handhelds (though has desktop images now) and includes the Steam Deck's gamemode package. That means it has the same interface, but working on a Legion Go or an Ally X. If anyone here has* any of those three you should seriously check it out!
The other thing as well is that more often than not, the update will succeed and you won't figure out until the next boot that something is wrong. However, Bazzite has a rollback tool so you can just change back to the previous image, reboot again and get to gaming.
That's the best reason for immutable for gaming IMO. I don't want to be fucking around with the OS when I'm in the mood to game. Being able to quickly rollback and jump into things in ~10 minutes or less is how it should be.
Immutable, doesn't mean extreme secure. It's a false sense of security.
It could be more secure.
But during a runtime, it is possible to overwrite operational memory, mask some syscalls, etc.
it doesn't allow changes to stuff that needs root access to change. If you have root access you can do anything, including switching images. It is not more secure. It's not less either
Fully agreed. On almost any atomic distro, /home/user is writeable like usual, so any attacker is able to persist itself by editing ~/.bashrc and putting a binary somewhere.
I personally vastly prefer mutable distros for my own system, but I understand the appeal for those who like them. As long as mutable distros remain an option I don't mind immutable distros.
Precisely this, linux is about choice.
It's not like suddenly most distros would change init systems and make it near impossible to choose... oh, wait...
I prefer mutable and see immutable mostly as lazyness but if people wanna use'em go for it, i'm not pushing mutable down their throats.
Linux isn't about choice, it's about freedom. Distro's don't owe you the choices you want, because the devs have the freedom to make what they want. You also have the freedom to modify them or make whatever distro you want.
For my needs, I've build a static system with buildroot for a pi zero. No updates, no modifications on the system, no remote access. Some directories are in tempfs, and after a reboot the system is fresh again. when needed, I removed the sd card and copy a new image
I use this board for a pulseaudio/mpd player, it's not intended for a desktop usage, but I'm happy beiing able to configure a system like this one. For me, there is no maintenance, and this is exactly what I wanted
NixOS is kinda the best of both worlds, because it does everything in a way that is compatible with an immutable fs, but it doesn’t force you into abiding by immutability yourself.
You can always opt into immutability by using Impermanence, but I’ve never seen any reason to.
Edit: That said, the syntax has a steep learning curve and there are tons of annoying edge cases that spawn out of the measures it takes to properly isolate things. It can be a lot to micromanage, so if you’d rather just use your system more than tinker with it, it may not be a good fit.
Bazzite is atomic (not immutable), same with Silverblue and other Fedora variants (they're all atomic, even on their main page it says atomic). It's kinda misleading ngl
Fedora Atomic IS immutable. Rpm-ostree just layers (or hides) stuff on top of the already existing image.
If you layer something, e.g. Nvidia drivers, you still download the same image everyone else uses, but basically compile the driver from fresh and put it on top. And that takes time. This is the reason using rpm-ostree to layer stuff is not recommended.
That's why uBlue exists for example. It gives you a sane start setup, where all drivers are already built in into the image. And then you can either use the clean base and add your own stuff to create your own image, or use already great ones like Bluefin or Bazzite, where everything you want is already included.
Atomic just means that every process is either completed without errors, or not at all. This way, you don't get an half updated and broken system for example in case you loose power. Happened to me quite a few times already, but never with Fedora Atomic.
Pretty much anything outside of /var/ (even /home/ is placed inside /var/) is read-only, and if you want to modify your install, you have to build your own image. Therefore, it is both immutable AND atomic.
Immutable ≠ atomic, but they generally come as a package deal. Bazzite, Silverblue, and all those other distro's that call themselves atomic are also immutable. An atomic distro is just one with atomic updates, and an immutable distro is any distro with a read-only core.
These distro's have started mainly calling themselves atomic because they agree that immutable is a poor description that generally confuses users.
A distro can be both atomic and immutable, and they often go hand in hand.
Immutable simply means the core of a distro is read-only, meaning it cannot be modified by usual means. There are still ways to modify these files, but it works differently than in other distros.
Atomic distros are ones that update atomically. Atomic is used to describe an operation that cannot be cancelled in the middle of it, they either complete, or nothing changes. This means you can't break things by cancelling an update midway through. Atomic distros also often come with the ability to rollback to the previous build of the system.
Honestly, I would say it isn't great for anyone who has to do something low level even once. Now that there are open source nvidia kernel drivers that has solved a pretty big issue for most people who would be interested in immutable distros, but there are still many other drivers and issues that your regular user may face.
One example off the top of my head is that flatpaks specifically can't ship systemd services if I recall correctly. A lot of wayland apps for thigns like input have to use daemons because of wayland's security model. Lact for AMD and now Nvidia GPU control, ydotool, or even gui versions of such tools for remapping input.
Snaps require custom kernel modules that aren't used outside of ubuntu, so I hesitate to trust them regardless of any of the other issues people have with them.
This basically leaves appimages which aren't available for everything and don't always seem to work at least not as reliably as flatpak. I even tried to package the rstudio forensic software as an appimage myself, so I could have an easy way to use that proprietary piece of software, but I just couldn't get it to work. I couldn't get it to work with distrobox either using the official methods they provide to install it on linux. I did get it working in a chroot for some reason, but it had graphical issues. In the end, I made a PKGBUILD for arch and got it working that way.
The point of all this is that a lot of times people say immutable is great for average, non tech savvy people, but I believe that literally everybody ends up needing to do low level stuff at least once or twice every so often. Which simply isn't a great experience since you end up having to do layering which throws these theoretical average users right back into the normal complexity of a mutable system, but with even more uncertainty in my opinion.
Now then with all of these caveats. I do still agree that immutable distros are great for the aforementioned group of people and I know this statement contradicts a lot of what I have described above. The reason why I think they are great for the less tech savvy people however isn't because of any actual technical merit of the systems design though. Immutable distros are great for people like Linus Sebastion because it limits what they can do. You simply have to accept what is there the same way that you have to on proprietary systems like Mac and Windows. Those systems force you to do things a certain way unlike Linux and that is what people like Linus need because they have no business mucking around with the system to begin with.
Lastly, all of this only works because devices like the Steam Deck are being run on specific hardware thus guaranteeing there compatibility. This is what we ultimately need. There would be much less need for low level operations to get drivers or change settings to make wifi or audio work right on a billion different devices if these people were buying linux compatible hardware in the first place.
These are valid concerns but to me they sound more like lack of tooling rather than inherent disadvantages of immutable distros. Linux distros have not historically been designed from the ground up for immutability and it makes sense that there are issues that aren't handled optimally. Surely we can come up with clean and simple solutions to basic problems like setting up daemons and drivers if we work on it!
You can install packages in immutable distros. It's just not as easy and recommended as a last resort.
With Universal Blue (Bazzite, Bluefin, Aurora) you can install packages with "layering". It's basically modifying the image by adding packages on top of what is shipped by the distro, and those packages get added each time the image is updated.
The better, more involved solution is to create your own image from the base image. That gives you a lot more control. You can even remove packages from the base image.
Weird, I don't have any issues developing custom systemd services or similar on my Kinoite installation. Packages that need to run on the host system can be layered, everything else is running in distrobox.
I love building my own uBlue image. Tinkering is done in toolbox containers, definite changes are baked into the image. Completely custom (to me) and when you get it right it will just work anywhere. If I would brick my PC/storage I can just boot up another and restore my (back-upped) home dir with very little effort.
It's important to note how the Linux community interacts with change. In the past, whenever a change has been significant enough to influence individual workflows, it often provoked strong reactions. This was evident when systemd was introduced and adopted by distros like Arch and Debian. Even though systemd was arguably superior in essential aspects for most users, it failed to meet the needs of at least a vocal minority. Consequently, community endeavors were set up to enable the use of Debian or Arch without systemd.
Similarly, the introduction of immutable distributions seems to upset some people, though (at least to me) it's unjustified. Immutable distributions don't necessarily alter the traditional model. For instance, the existence of Fedora Silverblue doesn't impose changes on traditional Fedora; let alone Arch or Debian.
But, overall, most Linux users aren't bothered by it. Though, they often don't see a use for themselves. Personally, I attribute this at least in part to existing misconceptions and misinformation on the subject matter. Though, still, a minority[1] (at best ~10%) actually prefers and uses 'immutable' distros.
Do the downsides outweigh the benefits or vice versa?
Depends entirely on what you want out of your system. For me, they absolutely do. But it's important to note that the most important thing they impose on the user is the paradigm shift that comes with going 'immutable'. And this is actually what traditional Linux users are most bothered by. But if you're unfamiliar with Linux conventions, then you probably won't even notice.
As a side note, it's perhaps important to note that the similarities between traditional distros are greater than the similarities between immutable distros. Also, Fedora Atomic is much more like traditional Fedora than it is similar to, say, openSUSE Aeon or Vanilla OS. Grouping them together as if they are a cohesive group with very similar attributes is misleading. Of course, they share a few traits, but overall, the differences are far more pronounced.
Therefore, it is a false dichotomy to simply label them as traditional distros versus immutable distros. Beyond these names, which we have assigned to them, these labels don't actually adequately explain how these systems work, how they interact, how their immutability is achieved (if at all), what underlying technologies they use, or how they manage user interactions. The implications of the above. Etc.
Could this help Linux reach more mainstream audiences?
The success of the Steam Deck and its SteamOS are the most striking and clear proof of this. So, yes. Absolutely.
Could you share some pics (without anything private ofc) of bazzite? I wanted to try it but I couldn't use it as live distro. My main problem is arch because I'm used to apt and I find pacman or whatever it uses difficult for me (nothing I can't learn ofc)
I love the idea of getting a fresh image for every update
Bazzite comes packaged with the essentials so that anyone can use it without using terminal. Flatpak is enabled by default and this is the best approach.
You can check it out below. https://docs.bazzite.gg/Installing_and_Managing_Software/
If you're not comfortable yet using any other terminal package manager other than apt, you can still use bazzite and learn with time. You can install most apps through Discover (KDE) or Gnome software
I don't have any pics cause I'm not currently near my computer that runs bazzite.
If you're mainly using GUI apps you'll probably just be installing everything through flatpak, which you can use via the Discover store that comes with KDE Plasma. CLI apps are installed using homebrew.
If you're mainly using GUI apps you'll probably just be installing everything through flatpak, which you can use via the Discover store that comes with KDE Plasma. CLI apps are installed using homebrew.
99% of the times on KDE neon I install using deb files and dpkg
You can still apply updates live, e.g. on Bazzite (Fedora Atomic) with the --apply-live tag (or however it's spelled).
The root partition isn't read only per se, but you have to change the upstream image itself instead of the one booted right now. You can use the uBlue-Builder for example to make your own custom Bazzite spin just for you if you want.
Both aren't inherently secure or insecure. It's harder to brick your system, yeah, for sure, but you can still fuck up some partitions or get malware. It's just better because everything is transparently identifiable (ostree works like git), saved (fallback images), containerised and reproducible.
And you can still install system software, e.g. by layering it via rpm-ostree. Or use rootful containers in Distrobox and keep using apt or Pacman in there.
Secure != stable
Immutable distros aren't always more secure but rather more stable and hard to break
Also btw nixos can apply updates without rebooting
NixOS is immutable and atomic, but it isn't image-based.
Immutable simply refers to how the running system configuration can't be changed by simply putting a file somewhere (e.g. copy a binary to /bin, which is a bad idea).
For example, Fedora Atomic and derivatives are image based, although they are more flexible than the A/B types like SteamOS.
OpenSUSE MicroOS uses btrfs snapshots to apply updates atomically, and is more flexible than most image based immutable distros.
Edit: But I don't think those terms have a single definition, so how would you differentiate these terms?
In your opinion, when can we refer to a distro as being immutable? How do you regard the likes of Fedora Atomic, openSUSE Aeon or Vanilla OS? Are any of these immutable in your opinion?
Feel like elaborating? I've been running it for a couple weeks and very happy so far. One nice little feature was how I can just scroll on top of the little sun icon in the taskbar and my monitors dim and brighten. But that's prolly a Plasma thing more than anything else.
One thing I really like about Bazzite (compared to EndeavourOS which I ran before), is that it just works for gaming. Lots of little tweaks and stuff to get certain qol things working in EOS, are just installed and configured by default in Bazzite.
The stability is super impressive... I used to rely on TimeShift on EOS to roll back when I broke shit (which was over and over, because that's how I learn), and while it's trivial to rollback on Bazzite, I've never even been close to needing to. It's just hard to break (and if you do, just reboot it and everything is fine).
It's definitely more user friendly, but I wouldn't say immutable like Bazzite is only for non-tech people.
I remain interested in the immutables or atomic distros because I know a lot of smart people that swear by them.
I also don't try them just yet because I know a lot of dumb people like me that end up breaking a lot of stuff before quitting them altogether.
They could be amazing and just not perfected yet or they may be a meme and no one's proved it outright just yet. Will be lurking this thread either way lool :D
These distros are great for beginners or less technically savvy. They're really just harder for people who have been using Linux forever and are very accustomed to the old ways.
Immutable = Read-Only Root FS && Updates entire system image rather than individual files
Atomic = Updates as single transaction (all or no update) && Containerization w/ Rollback capability
This is quick summary from quick research pls correct where technically wrong.
I'd argue it's closer to a mutable distro than an immutable one.
Nixos tends to lean on the term reproducible instead of immutable, because you can have settings (e.g files in /etc & ~/.config) changed outside of nix's purview, it just won't be reproducible and may be overwritten by nix.
You can build an 'immutable' environment on nix, but rather than storing changes as transactions like rpm-ostree, it'll modify path in /nix/store and symlink it. Sure, you can store the internal representation of those changes in a git repo, but that is not the same thing as the changes themselves; if the nixpkgs implementation of a config option changes, the translation on your machine does too.
Nixos tends to lean on the term reproducible instead of immutable, because you can have settings (e.g files in /etc & ~/.config) changed outside of nix's purview, it just won't be reproducible and may be overwritten by nix.
Interesting. If possible, could you more explicitly draw comparisons on how this isn't quite the same over on say Fedora Atomic? Like, sure changes of /etc are (at least by default) being kept track of. But you indeed can change it. libostree doesn't even care what you do in your home folder. Thus, changes to e.g. ~/.config (and everything else in /var[1]) are kept nowhere else by default.
Which happens to be more crowded than on other distros as folders like /opt are actually found here as well.
I think it's good if you have a ton of storage and want to set it and forget it. For me, immutable depresses me. I came to Linux for the tinkering and the ability to do what I please to my system, not to be restricted. That's just me, though. For handhelds/strictly gaming machine (a Steam machine for example)? I think immutable is the perfect fit for it.
Do you have any examples of the kind of "tinkering" you couldn't do with an immutable distro? I haven't run into any restrictions after more than a year.
I'm using Bluefin and overall it's great. However, there are some unique issues due to immutability and flatpak.
It's more difficult to utilize a NAS. For example, on something like Mint, I can open Proton Drive on Firefox, and I can use FF to upload files from my NAS to PD.
On Bluefin, I can access my NAS and all files using the Files app, but not using FF, and I cannot accomplish the above task in the same way. Firefox cannot fully access my NAS, and I have not figured out how to make it work. I've played around with Flatseal, but no dice. Instead, I need to use Files to download the files from my NAS to a local folder, and then I can use Firefox to upload to PD from that local folder. I'm guessing there is a better way, but I haven't figured it out yet.
EDIT: This thread motivated me to try and fix this issue. Installing Firefox using rpm-ostree worked. I expected it would, though I am still hoping to figure this out using the Flatpak version at some point. I also tried using Distrobox/Box Buddy to create a Fedora 40 box and install Firefox there. That version of Firefox couldn't even see my NAS at all (unlike the Flatpak which could see my NAS but couldn't upload files from the NAS to Proton). This was my first time ever using Distrobox. I thought it was super cool to see it in action and get a working Firefox, even though I couldn't use it to access my NAS as hoped.
I would desperately like to use a screenshot tool with built-in annotations, but I haven't found a flatpak that works. As I understand, it might have something to do with flatpak combined with Wayland and/or my Nvidia GPU.
So while most things "just work," there are some problems. Planning to stick with it and keep learning. I do love the concept and I'm overall very happy with everything.
I use Proton Drive on Librewolf on Bluefin without issues, so that seems a little odd. It might be an issue with what access you've given the fkatpak. Flatseal is the right place to look.
Are you using librewolf to upload files from your NAS to Proton Drive?
I readily admit I am still not super proficient with flatseal. I spent a lot of time trying to fix this by adjusting the file permissions, but I'm now wondering if it was some other local network setting I missed.
I also don't use fstab to mount my NAS. I just sign in using Files which creates a smb link. On Firefox/proton drive website I can see the files but I cannot upload them directly to Proton Drive from my NAS using Firefox (or Zen) on bluefin.
I added this edit above. Pasting here in case you are curious. Cheers.
EDIT: This thread motivated me to try and fix this issue. Installing Firefox using rpm-ostree worked. I expected it would, though I am still hoping to figure this out using the Flatpak version at some point. I also tried using Distrobox/Box Buddy to create a Fedora 40 box and install Firefox there. That version of Firefox couldn’t even see my NAS at all (unlike the Flatpak which could see my NAS but couldn’t upload files from the NAS to Proton). This was my first time ever using Distrobox. I thought it was super cool to see it in action and get a working Firefox, even though I couldn’t use it to access my NAS as hoped.
I'm not really sure how the upsides of immutable distros work. I've been using linux for a long time and I'm not an expert but I've learned bits of things here and there.
I recently bought a steamdeck and it's running an immutable distro. I don't really know how to use software that's installed via flatpak because it's weird.
I have a game installed that runs badly (unplayable for me) through proton. I can launch it through q4wine if I switch the steamdeck into "desktop mode" and it runs much better.
If it wasn't an immutable distro I could pretty easily make a shell script that launches the game through wine. Then I could add that shell script as a non steam game and it would (I think) run well, and I'd be able to launch it from the non desktop side of steam OS that is a lot more streamlined.
There is something comforting to me about immutable distros though.
I feel like I don't remember half the shit I have installed on my computers. If I wanted to start cutting things out I don't know where I'd start. But with flatpaks I get the sense I could probably just wipe anything I don't use out of the flatpak directory and I probably wouldn't break anything.
I'm fairly certain you could still run that shell script on steamOS? I don't understand why an immutable distro would keep you from doing that. It's essentially what Lutris and Heroic Games launcher do.
I used an immutable fedora on my surface pro 4, I wanted to shoot myself in the face every time I had to install anything. I'm good on that for the rest of my natural life.
Wasn't about that at all. Any DNF action took a lightyear... man just typing out those long commands (very hard to remember coming from apt) nevermind the much crazier wait time. Using toolbox for dev environments to compile things was a total nightmare. I'm sure there's a scenario where it's ideal, that was certainly not my situation.
Yeah what I really meant was you don't have to have much linux experience to jump in, I definitely like the idea of not doing live updates now that I know it's an option
Has anyone had good success with setting up a development environment in an immutable distro? I love the entire concept because it fits with a lot of my other software preferences, but the tools for containerized dev environments felt frustrating.
Like, what do you do for your editor? vscode + devcontainers feel like the best option, but it's rough when I need other IDEs (like I use some of the Jetbrains products). Stuff like toolbox works well too, but to get an editor in that, you have to install it in each one, or make a container that has it built in.
Otherwise, I'll stick with plain Fedora — I use flatpaks for all of my apps anyways (except my editor)
i started learning rust with nixos,
you can declare a shell.nix with everything needed for the environment, and those things will only be available in that folder.
there are caveats and annoyances to this like building a python environment costed me some time, because python packages sometimes require compling and all the shared libraries in nix are not in the right path (because you can have multiple versions installed) so you need to set some env vars to patch this.
Personally, I have found the developer experience on Bluefin-dx (the only one I’ve tried…) to be…. mixed.
VSCode + Devcontainers, which are the recommended path, are pretty fiddly. I have spent as much time trying to get them to behave themselves as I have actually writing code.
Personally, I’ve resorted to using Homebrew to install dev tools. The CLI tools it installs are sandboxed to the user’s home directory and they have everything.
It’s not containers - I deploy stuff in containers all the time. But, at least right now, the tooling to actually develop inside containers is kind of awkward. Or at least that’s been my experience so far.
I think the ublue project is fantastic and I really like what they are doing. But most of the world of developer tooling just isn’t there yet. Everything you can think of has instructions on how to get it going in Ubuntu in a traditional installation. We just aren’t there yet with things like Devcontainers.
I use Jetbrains, devcontainers, and distrobox on Bluefin-DX and it has been flawless out of the box. There's a single command to install the Jetbrains toolbox, which let's you then manage all their apps.
Couldn't recommend it enough, made my development lifecycle so easy.
How do you use the Jetbrains tools with distrobox? So far I've manually installed the toolbox inside my distrobox, but that doesn't seem to be the preferred approach.
Running cli apps like neo vim from a flatpak is frustrating... "flatpak run com.something.neovim" is just the worst way to handle things. Complete deal breaker.
I wonder if you can download Apparmor and Apparmor-d on mutable distros, But I faced issues of bwrap and I couldn't find a SELinux equivalent for Apparmor-d i tried allowing Bwrap but it didnt work so i uninstalled Apparmor.
I need to run immutable distros more, and I need to figure out how to roll my own images.
Desktop side, I need certain things in the base image rather than adding more layers or using a container. Things like rsync, nvim, git, curl, lynx, etc.
Would immutable distros help reach more desktop audiences? Perhaps. It’s more about applications though. The biggest help has been electron apps and the migration to web apps. The Steam Deck is successful because it has applications people want.
Server side, they look really promising for bare metal servers. Provided, there is an easy way to compile custom images. Being able to easily rollback to a known good image is very enticing, as you point out.
I can see where you're coming from because of outdated libraries and flatpak sandboxing not really being a thing (it's an illusion, really) but you can't deny that this is the direction we're moving in, and we need to get flatpak sandboxing and permissions right, to ensure a proper base level of security.
For those unaware:
Many flatpaks use older, outdated, or end-of-life libraries
Flatpak permissions are messed up because most applications ask to bypass the sandbox at install-time
You're definitely out of date on your knowledge then. Nothing inherently insecure about any of these. Only download software you trust, just like you should be doing with any software format!
The root filesystem is being read from somewhere, and if it's being read from, it can be written to. Having an extra step or two in the way doesn't make it "extremely secure".
Unless "read-only" is being enforced by hardware (reading from optical media, etc), a compromised sudo user can circumvent anything, and write anywhere. A read-only flag or the root filesystem being mounted from somehwere else are just trivial extra steps in the way.
Improved security != extremely secure, is all I'm saying. There are a lot of things that go into making a system extremely secure, and while an immutable root filesystem may be one of them, it doesn't do the job all on its own as advertised in this post.