I think NixOS is awesome, but it certainly doesn't offer "access to (basically) all Linux-capable software, no matter from what repo." - at least not natively. You can do that through containers, but you can do that with containers on any distro. Where it shines is declaring the complete system configuration (including installed programs and their configuration) in its config file (on file-based configuration, I wouldn't really consider blendos a viable competitor).
post
While I’ve looked into Fedora Silverblue, that distro is limited to only install Flatpaks, which is fine for “apps”, but seems to be more of a problem with managing system- and CLI tools.
No. Your understanding to Fedora Silverblue is wrong. I can just run rpm-ostree install package.name in Silverblue, like other Fedora spins. The small disadvantage is that I need to reboot to apply this update. (re-construct)
but doesn’t that result in new A/B snapshots, or something like that?
Well, you can call it snapshots, but there is no need to think about it. In most cases, the system points to the newest snapshot (deployment 0). If a rollback is needed, I can pin to the older deployments. When a major change is to be applied (Like bump Fedora version), I'd manually mark the current deployment as dont-auto-delete.
Sure, but I’d like to have a more seamless experience, i.e. not having to open/start any “containers” or something like that.
I never used toolbox in my Fedora Silverblue system. I feel that I can't tell the difference between using Silverblue and the default Fedora spin
Thank you; that was very insightful 😊
Also: I think rpm-ostree only supports rpm-based packages, tho; right?
Can I install .deb software too?
And is there any kind of system-as-a-config-file kind of solution available like in NixOS or blendOS?
For other systems I think distrobox and toolbox are kind the intended way to mess with them. For configuration as code ansible is a popular answer.
How well does Ansible work when I want to change my config? Is a quick reboot sufficient!
NixOS
- "The new Arch"
- Very customizable and minimalist
- Semi-Immutable
- Huge community and very old
- Very different than others
- Config-based
- Not very (new) user friendly, wouldn't use it. Too complicated for me
BlendOS
- Doesn't offer much new stuff for me, nothing they offer is substantial for me.
- Small dev team
VanillaOS
- "The new Linux Mint"
- Huge focus on usability and user friendliness
- Apx is basically only a wrapper for distrobox
- Small dev team (the same one that also develops Bottles)
- Huge potential, but not quite there yet
- Will recommend it to new users when it's updated to 2.0
Silverblue
- My recommendation
- Is one of the oldest immutables and very well thought out
- Biggest dev and userbase
- You can not only install Flatpaks, but also everything else with Distrobox and rpm-ostree
- Best feature: you can easily rebase to it's other spins or the custom ones from uBlue I just rebased this weekend from the SB to the Kinoite-Spin in just one command. I was able to "change distro" without resinstalling, and KDE was installed very cleanly without leftovers.
Calling NixOS the new arch is needlessly insulting lol.
I mean seeing how people here act after having been on nixos for a few weeks I would say it's an apt comparison. I swear we weren't that obnoxious when I started using the distro in 2019 D:
NixOS is uncomparable.
Lots of great answers here already so I will only address a couple of things that haven't been mentioned:
Regarding Fedora Silverblue:
- Currently, Fedora Atomic Desktops are in a major shift to accept OCI container images for delivery of packages. This means that the built image becomes one compliant to OCI and that we boot into an OCI container as our system. As OCI images are relatively declarative (not to the extent that NixOS does (yet)), it becomes possible to have a set of config files (most importantly, the so-called Containerfile) in which your system is 'declared'/'configd'. In case you're interested into how this looks/works, consider taking a look at uBlue's startingpoint or if you're more interested in the scope of configuration into Bazzite and/or Bluefin.
- apx is available as a COPR on Fedora Atomic Desktops.
- Nix can be installed on Fedora Atomic Desktops using Determinate Systems' installer.
Regarding Vanilla OS:
- They're also moving to a model that's very close to where Fedora Atomic Desktops is heading towards. So, expect a similar way to config/'declare' your system.
What are your thoughts on the
threefour distros mentioned above?
It's a question of polish if you'd ask me. With Fedora Atomic Desktops and NixOS being advantageous due to being more established and better funded. I wouldn't write off Vanilla OS yet as they seem to know what they're doing. Though, I wouldn't keep my hopes up for blendOS as its main developer was unaware of which MAC was configured by default on blendOS (spoiler alert: none, at least at the time).
Furthermore, NixOS is literally its own thing and unfortunately infamous for its steep learning curve. If you can afford to learn and conquer NixOS, then NixOS should be the recommendation; unless (like me) you seek SELinux on your systems.
Between Fedora Atomic Desktops and Vanilla OS; Vanilla OS is still in its major rewrite/revamp. The alpha builds are there, but I wouldn't recommend using those on production machines. Fedora Atomic Desktops, on the other hand, has been going strong for a while now and the uBlue-team has even succeeded in making the OCI-stuff accessible for the general (Linux) public. So if you want to switch now and NixOS is/seems too hard; then Fedora Atomic Desktops it is. On that note, I recommend to check out the uBlue project.
Which ones are the most interesting, and for what reasons?
Honestly, all of them are really interesting, but NixOS does the most unique stuff; with only Guix doing something similar within the Linux landscape. To give you a taste of some of the wild stuff found on NixOS; there's the so-called Impermanence module which -to my knowledge- happens to be the closest thing to a usable stateless system we've got; period. Consider reading this excellent blog post in case you're interested to know what this entails.
Silverblue is sure not limited to only flatpaks.
Oh 👀
I didn't know that; I knew you could modify the underlying system, but doesn't that result in new A/B snapshots, or something like that?
toolbox/distrobox
Sure, but I'd like to have a more seamless experience, i.e. not having to open/start any "containers" or something like that.
Also, can I "normally"/traditionally install software on NixOS, e.g. through Steam?
Listen to the "Linux User Space" podcast, episode 404. They explain every immutability model af of now. Ubuntu Core is missing.
Ubuntu is creating something new, looks really great but based on snaps, which are not bad packages but rely on a nonfree store that cant be replaced. So meh.
Not bad packages
I've made the opposite experience. There were loads of snap-specific issues when I used ubuntu. So many that I now recommend not using ubuntu just because of snaps.
Thanks for your suggestion, but I'll never use snaps/snapcraft/snapd by choice;
I do see the reasons for why developers/app maintainers may want to (universally) package themselves, but we've got Flatpak for that.
Less loopback devices = better imho
VanillaOS and BlendOS also use containers to install apps, just like Fedora Silverblue. In fact, it's easier to install native packages on Silverblue than it is on VanillaOS. Just set your terminal to start a container by default.
Also, can I “normally”/traditionally install software on NixOS, e.g. through Steam?
Depends on what you mean by traditionally. Steam works without needing any special setup by enabling it in your configuration, just programs.steam.enable = true. There's also imperative package management with nix profile (don't use nix-env -i which you will probably come across, it's broken by design). Personally though I recommend sticking with the declarative configuration and nix-shell which temporarily brings packages in scope for the current shell only.
You look at defaults and think this is linux.
Look again at Fedora Silverblue /any other desktop variant. VanillaOSses apx is just a wrapper around distrobox, which is preinstalled on ublue even.
Apx installs apps on containers just as it is possible on Fedora Atomic (the general name for all immutable desktops). You can also layer and remove apps to or from the base OS which is sometimes needed or nice for speed.
On Fedora Atomic you have
- flatpak
- podman containers (toolbx, distrobox: like apx on VanillaOS but without the great tooling and GUI management, yet)
- rootful containers for stuff interacting with systemd, needing USB access etc.
- layering or removing packages / changing the OS to something like ublue to let other people do the work, especially for NVIDIA drivers
You look at defaults and think this is linux.
What do you mean by that?
On the Fedora Atomic website, they write:
Project Atomic is now sunset
The Atomic Host platform is now replaced by CoreOS. Users of Atomic Host are encouraged to join the CoreOS community
Do you think CoreOS is a good fit for a desktop?
I always thought it's more of a server distro.
On a related note: Would you recommend Fedora Silverblue?
Oh no. The rebrand is not done. There is no Atomic site yet, Atomic= Fedora Desktop with OSTree (Silverblue, Kinoite, Sericea, ...)
If you like GNOME, yes I recommend Silverblue a lot.
Fedora has a very different system of the core distro. But with defaults I mean that they dont have apx by default but the same underneath.
You could use a bash function for DNF for example, but in general it is
distrobox-create Fedora39
distrobox enter Fedora39
sudo dnf install PACKAGE
distrobox-export --app PACKAGE
for GUI packages
I would check out something like universal-blue.org. It is fedora silverblue but with fixes that make it more usable (like codecs by default). It also ships distrobox right out of the gate so you can use that for apps that aren't in the fedora repos, copr , or flatpak. You also don't have to layer packages if you install via distrobox so I think it ends up being pretty handy for stuff that you want that isn't available as a flatpak. Finally there are many different images for all different desktop environments so you can switch between them just by using rpm-ostree rebase and the link to the different image.
You van both use rpm-ostree and toolbox to install regular fedora packages on silverblue/kinoite
What is your usecase?
This is the key question.
Daily driver;
- Dev work (VS Code) 👩💻
- Using Firefox 🔥🦊🛜
- Playing games every now and then (mostly Steam & Proton) 🎮
Is there something that attracts you to NixOS for that purpose?
I've got Nix OS running on one of my computers, and honestly, haven't found it to be particularly notable for those usecases.
Dev work is not specific enough. Pip is a nightmare because it just wanted to modify folders that were read only and you never know what it wants to do to your system. Your experience may vary depending on how much the language package manager assumes about your system. If you're in a container, it will work perfectly, though
Firefox just works, and I installed Steam from nixpkgs and it worked after enabling a few settings. Then I just enabled Proton on every game and it works okay, with a few weird bugs sometimes (although I blame Gnome for messing up alt tabbing sometimes)
top 50 comments