this post was submitted on 12 Nov 2023
82 points (96.6% liked)

Linux

48052 readers
1052 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
 

So I've recently taken an interest in these three distros:

All of these offer something very interesting:
Access to (basically) all Linux-capable software, no matter from what repo.

Both NixOS and blendOS are based on config files, from which your system is basically derived from, and Vanilla OS uses a package manager apx to install from any given repo, regardless of distribution.

While I've looked into Fedora Silverblue, that distro is limited to only install Flatpaks (edit: no, not really), which is fine for "apps", but seems to be more of a problem with managing system- and CLI tools.

I haven't distro hopped yet, as I'm still on Manjaro GNOME on my devices.


What are your thoughts on the three distros mentioned above?
Which ones are the most interesting, and for what reasons?

Personally, I'm mostly interested in NixOS & blendOS, as I believe they may have more advantages compared to Arch;

What do you think?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 1 year ago (3 children)

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?

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

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.

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

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.

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

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

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

Agree partly. Maybe snaps are bad, dont know the details, but if system packages and even the kernel can be packaged, thats pretty nice

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

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.

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

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.

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

it’s broken by design

what do you mean by that?

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

There's two different ways of identifying a nix package: its attribute path in the package set, and the name it self-identifies as. Here's an example where those differ, firefox-esr. Its attribute path is firefox-esr while the package name it reports is firefox.

It's very fast to find a package by its attribute path since that's essentially one or more map lookups. In contrary, the package name isn't unique (for example, firefox and firefox-esr both have a package name of "firefox" because they are built from the same package file just with different sources) and also doesn't have an index, so to find a package with a matching name you have to search through the entire package set and evaluate every package to get its name and check if it matches.

nix-env -i searches packages by their package name, which as a consequence makes it slow and also unreliable since you might not get the package you were looking for, but instead another with the same name. nix-env -iA somewhat fixes this by installing packages by their attribute path, but even if you use that you get the same issues with nix-env --upgrade since that always searches for packages to update by the installed packages' names (it might even replace one package with a completely unrelated one which coincidentally has the same name!).

The new nix profile however stores the attribute paths a package was installed from so doesn't have any of these problems.