this post was submitted on 18 Oct 2023
66 points (95.8% liked)

Linux

47918 readers
1173 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

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I am playing around with Fedora Silverblue and openSUSE Aeon and I really like the painless updates.

Still, my daily driver for some years now is Debian, and I have a decent setup via Ansible - everything just works for me.

My question is mostly to long term Linux users, which use Linux in a professional context and jumped from a distribution like Fedora, Ubuntu, openSUSE or Debian to NixOS, Silverblue, Aeon etc.

What is your experience? How did your workflows change on your immutable Linux distribution? Did you try immutable and went back to a more traditional distribution - why? How long are you running the immutable distribution and what issues and perks did you run into?

all 45 comments
sorted by: hot top controversial new old
[–] [email protected] 18 points 1 year ago (2 children)

I think there’s just not enough people who run them. I think the closest you’ll find is the nixos crowd.

I’ve wanted to give silverblue a go, but I know how to manage my fedora install pretty well and don’t feel like taking on a new project like that when at the end of the day I just want to load up steam and decompress. I have a feeling that the majority people who want to try it are in same place I am.

Though it’s getting more and more tempting to switch since the vast majority of my data and packages are installed in my home.

[–] [email protected] 4 points 1 year ago (3 children)

yep...same here.

Also, I use VSCode which incorporates all the toolings that I have installed and also frequently use in a terminal. For an immutable system, I'd have to use the Flatpak version of VScode, which cannot access these toolings from the host.

So, no immutability for me now.

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago) (2 children)

This isnt’t the case for NixOS. I use VsCode and all I need to do is open it by typing “codium .” after direnv loads the flake file which points to all of my dependencies. I don’t use flatpak and I’m able to provision ALL of the tooling in a way that lives with the project rather than on my machine, needing to be manually updated.

[–] [email protected] 3 points 1 year ago

Also, on nixos you don't have to do that if you are lazy and can just install dependencies in your global config. Yeah its less optimal, but I'm too lazy to make flake files for each project.

[–] [email protected] 1 points 1 year ago (1 children)

When you say "with the project"... you mean, you load up a typescript project, so you can use npm, etc. but you cannot use golang toolings within that same VScode window, and vice versa?

[–] [email protected] 2 points 1 year ago (1 children)

His config loads npm and stuff when he is in the project directory. So anywhere outside of that directory, its like its not installed.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago) (1 children)

This. It allows me to be incredibly flexible and granular about exactly which software is installed in which environment. I could dream up the most obsolete (or vaporware or anything in between) tech stack imaginable and bind that to a flake and lock it then not have to worry about the rest of my system being contaminated with those unusual dependencies. It’s like what Docker dev environments and devcontainers are attempting to do but 1000x more elegant and reproducible.

[–] [email protected] 2 points 1 year ago (1 children)

Lol... as someone who jumps around between toolings all the time, this is anything but "flexible" for me.

I might write an app that uses web tech for the frontend and golang for the backend, and suddenly decide to throw in a flutter version for mobile.

But if it works for you, great.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago) (1 children)

Lol!

Maybe I’m reading that wrong…if not, I’m kind of dumbfounded how you can somehow take away from what I said that this technology doesn’t make that 1000% easier than your current method.

Say I wanted to suddenly throw in a flutter version for mobile, I could just add a flutter input and output into the flake and suddenly I’d have that tooling.

I suspect you misunderstand how it works.

How does your old school manual install method make that easier?

Full disclosure: I honestly don’t care if you use it one way or another. I’m just hoping to educate you (or anyone reading along) about the true nature of the widely misunderstood tech we’re talking about.

[–] [email protected] 2 points 1 year ago (1 children)

It's all good, man. I'm not saying that my way is the right way, and your's is wrong, and I love being educated.

What I mean, is, I have all the toolings already there without having to set them up, once I feel I need them.

So the discussion is more about having things set up globally vs. scoped.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

NixOS is hard to explain.
I also did not get it at first, but got into a 101 session at cfgmgmtcamp last year and then it clicked.

I would suggest looking at YouTube videos like this one and try to understand what NixOS really is.

It is a pity really that it is not more approachable, the project would have more success if it is somehow easier to explain to others that are new to it :).

[–] [email protected] 1 points 1 year ago

3 hrs? thank god I don't use the official YT app 😂.

But you're right. One should at least watch a real-world practical example of its usage.

[–] [email protected] 2 points 1 year ago (1 children)

You can actually use distrobox to set up a regular version of Fedora, set up VSCode there using the official Microsoft RPM and keep all your code in there.

[–] [email protected] 1 points 1 year ago

I know, but then again... it's just another layer of maintenance.

Don't get me wrong. Distrobox is a wonderful piece of software. I use Arch inside DB to run some non-crucial stuff that's not available in the fedora repos/copr, like lycheeslicer.

But having a working and reliable code environment is something I'd really not want to babysit.

[–] [email protected] 1 points 1 year ago

Yeah I’ve run into the same problems, really annoying when I can’t find a workaround but it’s getting easier as time goes on

[–] [email protected] 2 points 1 year ago (1 children)

I dont run fedora silverblue for my maindesktop. But my laptop and my Ybox (my budget itx build for portable gaming and lan partys) Both run fedora silverblue and Ublue my ybox runs bazzite nvidia because it has a 1060 and my laptop runs fedora silverblue 47 (i like older version better) And they have been great. There are a few work arounds and tweaks but once you get it setup its rock soild.

[–] [email protected] 1 points 1 year ago

Good to hear! I’ve been looking at that distro too for a gaming PC. Glad to hear you’re having good results!

[–] [email protected] 15 points 1 year ago* (last edited 1 year ago) (1 children)

my daily driver for some years now is Debian, and I have a decent setup via Ansible - everything just works for me.

Then don't change anything.
Only because there's new shiny stuff every two weeks out there in the FOSS world, doesn't mean "old" stuff isn't relevant anymore.
If Debian suits you, keep it.

My question is mostly to long term Linux users, which use Linux in a professional context

I sadly can't speak for that exactly.
I don't use Linux professionally and would rather consider myself as "noob", but maybe my input has still some value for you.

What is your experience? How did your workflows change on your immutable Linux distribution? Did you try immutable and went back to a more traditional distribution - why? How long are you running the immutable distribution and what issues and perks did you run into?

I used Silverblue now for a few months.

I broke every distro out there and SB is rock solid. If I break something (which basically never happened), I can just reboot and select the image from before. It's a huge gain of peace of mind for me to know I never have to worry about the state of my system again!

My workflow changed to using containers for everything. As I said, I'm pretty much a "casual" user, so Flatpaks cover 99% of my needs. If I need some CLI program or something not available on Flathub, I use Distrobox, which gives me access to every distro and integrates perfectly.

Issues: nothing major yet. If a containered program shouldn't work, I can always install it natively per rpm-OSTree. Reboots aren't an issue too. I shut down my PC anyway, so I don't care. Updates get installed and staged in the background, and I boot into a new image everyday.
I never get forced to reboot, even less than on normal Fedora.

Usually, on a mutable system, you should offline-install and reboot your PC anyway for safety and better stability on the runtime.

The only thing that didn't work for me are VPN clients, but the integrated Gnome solution works fine for me too. Oh, and many install-scripts don't work/ aren't available for SB aswell.
Most might work, but nobody took time to write one, since they need some other approach than Debian or Fedora.

I really recommend you to check out uBlue, it's a great project and really "the future". It uses the rebase-feature, which enables users to make their own custom images, similar to Nix.
I for example use uBlue-Silverblue, which comes with some QOL-stuff pre-enabled. You can also install a SteamOS clone, images with integrated Nvidia-drivers, "unsupported" DE- and WM-spins, and so on there. With one command. And you can swap out the base anytime you want on an existing system.

Would I recommend you SB or any other immutable distro? Theoretically, 100% yes! Practically, in your case, no.

Stick with Debian if it fits you. Look into Distrobox if you want. See, if most stuff is in your home-directory, or if you prefer uncontainered stuff.
If the pros outweigh the cons for you, then install it the next time when you have to anyway (new hard drive, etc.).
But you can also wait a few years until immutable OSs get more widespread and mature.

Edit: I just looked up what Ansible is. In that case, NixOS would be fabulous! uBlue is relatively new and probably not as mature. If you like to install a system reproducible, just share the nix-config and apply it on another PC. But you have to get into it first, which might be complicted and time consuming. It still should be worth it.

[–] wolf 2 points 1 year ago (1 children)

Thank you very much for your elaborate answer!

I agree with your advice, to not jump ship when everything works and that the new stuff doesn't have to be better.

For Silverblue, I see the potential that it is an improvement over Debian for me. I used Fedora some years back, and it was always the distribution with my favorite community, besides its technical excellence. I played around with openSuse's Aeon/MicroOS, and I love the update system for immutable systems. (Just reboot and be done with it.)

So, where I hope Silverblue will be a clear improvement for me:

  • Immutable/automatic updates
  • Updated software packages (No, not interested in running testing or unstable)
  • Fedoras polish for Gnome users
  • Containers for work stuff (At the moment I use whole VMs, which was one of the reasons to automate everything with Ansible)

The nice thing for me is, if it doesn't work out with Silverblue, I can setup my Debian system via Ansible in no time.

[–] [email protected] 2 points 1 year ago

It comes down on what is important to you.

Debian is great when you're a bit more conservative and want to not change as much, and Fedora is more leading edge for new technologies. They implemented, for example, Wayland, Pipewire, and much more, as one of the first.

So, where I hope Silverblue will be a clear improvement

Don't fixate to much on SB. There's also VanillaOS out there, which is/ will be based on Debian and aims to be as user friendly as possible. Many of the pros are universal to most immutables.

  • Containers for work stuff (At the moment I use whole VMs, which was one of the reasons to automate everything with Ansible)

You can already use Distrobox or Toolbx on Debian. But they don't replace VMs and are more similar to Flatpak, giving you mostly runtimes and dependencies, but the host OS is still perfectly accessible.

Fedoras polish for Gnome users

Fedora doesn't polish Gnome. They only provide vanilla desktops, KDE for example is also pretty much unchanged.

Difference is, that most other distros modify their DEs, which isn't what the creators intended.

This is why, in my personal opinion, Gnome on Ubuntu sucks for example

[–] [email protected] 6 points 1 year ago

i'm running kinoite 39, since a few months, and honestly i'm pretty happy, there is a few bugs of theme consistence that was fixed(and because i'm in beta) i was already running everything on flatpak anyway so not much change, and toolbox is so integrated that i can install software there and use it instantly, so not needing to rpmostree install and reboot everytime, kde is not so instegrsted as gnome so global theme needed to be installed manually, and i changed a few configs to shutdown my laptop after i close the lid, so i can open it and have the system updated automaticly, i don't think it's perfect, i needed a lot of reading to trully know how my system works(and why i can't change the /usr for example) but it's fun to learn and i can install anything inside toolbox that i know not going to fuck my system lol

[–] [email protected] 3 points 1 year ago

I like opensuse aeon but it has problems with boot config for my intergrated nvidia card in my laptop, silverblues great tho

[–] [email protected] 2 points 1 year ago

I’m running silverblue, which works pretty well for a few years now. The only limitation I’ve encountered is getting non-packaged software to work, such as drivers and accompanying software for my racing wheel.

[–] [email protected] 2 points 1 year ago

I personally really enjoy silverblue. The easy backups to me is useful for anyone. It allows me to experiment with entirely different setups on my laptop without worrying about losing my original configuration. I see it as the future of linux

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (2 children)

Silverblue works fine for me but I miss gparted

[–] [email protected] 3 points 1 year ago (1 children)

What's the problem with it? (legit question from non-silverblue user)

[–] [email protected] 5 points 1 year ago (1 children)
[–] [email protected] 4 points 1 year ago (3 children)

Knowing such basic tools are missing makes me quite averse to trying it :/

[–] [email protected] 3 points 1 year ago

You can still install most packages, it's just more steps. Look up "silverblue rpm-ostree overlaying"

[–] [email protected] 2 points 1 year ago

It feels a bit like a phone OS, which is kinda awesome and horrible at the same time. It has gnome disks (or whatever is called, the default gnome partitioner) as an ok alternative to gparted. I have it installed on an old laptop that i occasionally use for web browsing and other light tasks, and for that it's great. I wouldn't use it for anything serious, but it's great if you want just a basic, no maintenance OS.

[–] [email protected] 1 points 1 year ago (1 children)

Of course you can install gparted, you can run just about anything that you want, it's still Linux.

[–] [email protected] 1 points 1 year ago

I know but it kinda feels wrong haha. I like to use it flatpak only.

[–] [email protected] 2 points 1 year ago

you can always just overlay that ;)

[–] [email protected] 2 points 1 year ago (1 children)

I'm running bazzite (custom image based on Fedora Kinoite) on both my desktop and Steam deck. I've also used NixOS on my laptop.

I really think this new approach is the path forward for Linux. I've been a Linux user for at least 15 years, both for servers and workstations, and the peace of mind that comes with knowing I can rebase to an earlier version or even deploy my system to other machines is wonderful, all while enjoying mostly the latest packages.

I'll still be using Arch though for anything with hardware that's not widely supported.

[–] wolf 1 points 1 year ago

Nice, thanks for the pointer to bazzite, looks like the perfect candidate for the next OS on my home entertainment system!

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

NixOS is great

My workflow hasn't changed much except I now find myself writing shell.nix files in my projects instead of having various compilers and build tools installed in my config itself since adding a random one-off dependency for a project is tedious if it doesn't get added to the correct environment variable or something. Ultimately, this is really a benefit tho as it means I have a reproducible dev environment that can be shared with anyone else.

It also simplifies a lot of configuration stuff with sane defaults making it way easier to spin up things that might take a little bit of messing around, e.g. different desktop sessions (currently, I mostly use i3 and GNOME Wayland + Pop Shell, but I've experimented with others).

It's more about how clear it is for me to get to my workflow. The Nix system (language, package manager, and OS) is really just beautiful once you get your head around everything.

I've been on Nix now for a few months coming from Fedora (1 year) and before that Arch (3 years), and I've loved every second so far. I use it for both work (embedded software engineer) and personal. It feels like the last thing I'll ever config