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?

  • tanjaOP
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    it’s broken by design

    what do you mean by that?

    • Rikudou_Sage@lemmings.world
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      nix-env is used to install packages in a similar way to apt or yum - you install a package, it gets downloaded and installed. This way of installing goes pretty much against the whole idea behind immutable systems.

      The clean way is to add a package to your configuration file (and reconstruct your OS from that), or use a nix-shell if you need the package only temporarily.

      • tanjaOP
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Oh, ok

        So I should reinstall the OS every time I change my config?
        Is this like the “deployments” from rpm-ostree in Fedora Silverblue?

        • Rikudou_Sage@lemmings.world
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          You just run sudo nixos-rebuild switch and it makes your system match whatever is in your configuration file (packages, services, hardware drivers, config files etc.).

    • 2xsaiko@discuss.tchncs.de
      link
      fedilink
      arrow-up
      1
      ·
      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.