Announcement

Collapse
No announcement yet.

NixOS 21.11 Released But Its Own Package Manager Is Left Behind Due To Regressions

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • NixOS 21.11 Released But Its Own Package Manager Is Left Behind Due To Regressions

    Phoronix: NixOS 21.11 Released But Its Own Package Manager Is Left Behind Due To Regressions

    NixOS is an original Linux distribution built atop its own unique Nix package manager that is focused on being functional, reliable, and reproducible. The Nix package manager concept is great but somewhat ironic is the new NixOS 21.11 release not even shipping with the latest Nix package manager version due to known regressions...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Nix is an interesting package manager. The fact that it allows you to install multiple versions of a library/app prevents API/ABI breaks which are common in some distros (like Arch Linux).
    It's something that should be part of every package manager (ensuring no API breaks that suddenly hinder an application from working due to "error while loading shared libraries").

    Comment


    • #3
      Originally posted by tildearrow View Post
      Nix is an interesting package manager. The fact that it allows you to install multiple versions of a library/app prevents API/ABI breaks which are common in some distros (like Arch Linux).
      It's something that should be part of every package manager (ensuring no API breaks that suddenly hinder an application from working due to "error while loading shared libraries").
      So I actually ran NixOS close to a year

      The good parts:
      • Your entire system including config files (apart from documents/files stored in home) is stored as an atomic immutable state. This makes it incredibly easy to revert to a previous version if something breaks an ANY type of upgrade (kernel or even some system package)
      • Your configs are centralized in a specific place and they all share the same syntax (i.e. the Nix language). This makes it easy to just share the configuration between a laptop and a desktop and things just work
      • Nix-shell is very nice for setting up development environments
      The bad parts:
      • Any kind of synchronization with upstream takes a lot more work, everything has to be wrapped inside the Nix package manager because the only way it can track everything atomically (including files) is that it needs to be completely aware of everything that goes on. In practice this means that if there is some problem with a package there is more friction in getting it to work in nixos
        • This also means that not only do you have to be aware of the how upstream handles their package in general but ontop of that you also need to be aware of how Nix handles things and although this isn't anything special (i.e. homebrew formula's are written in Ruby and pacman packages are written in shell) the learning curve is a lot higher.
      • The "you can have multiple versions of some package installed" is a slight misnomer because it only really works for versions that have been stabilized in channels. If for example you want to install a patched version of Postgres that fixes some bug (or even some other version that isn't just the latest minor in a series) you have to manually patch the package. Honestly this isn't any better than other packages like homebrew which can do brew link <x> to switch between different versions of a package
      Personally I think NixOS is great for server environments because it becomes very easy to audit a system and what versions are installed and that nothing has been tampered with (each slight change to a NixOS system creates a new hash), but for desktop/personal use it still needs more work.

      Comment


      • #4
        The "you can have multiple versions of some package installed" is a slight misnomer
        You don't manually patch it. You overlay an override linking to the patch (local fs or remote www...): https://nixos.wiki/wiki/Overlays

        And when there's enough demand, upstream will maintain multiple versions, including patched versions, of packages which you can use directly or as a dependency (again, with an override) to other packages.

        but for desktop/personal use it still needs more work.
        Personally I use it as a desktop... But true. In that respect it's no different from any other linux distro: Like Red Hat and Canonical, you need large dedicated teams to rollout a desktop OS and Nix just doesn't have that manpower.

        Comment


        • #5
          For what its worth, this is the reasoning for the regression in nix 2.3

          ℹ Preface Let us start with this message for people less involved in Nix things: We like Nix, we are overall positive about Nix, and this is why we are critical in this piece. Do not let any of this deter any of you from using Nix. Nix is great. We believe Nix will continue to be great, but diminished, even if none of these concerns are addressed. This is written with the intent to be a wake-up call. There is no cause for alarm at this moment, especially if you’re not deep...

          Comment


          • #6
            Originally posted by c117152 View Post

            You don't manually patch it. You overlay an override linking to the patch (local fs or remote www...): https://nixos.wiki/wiki/Overlays

            And when there's enough demand, upstream will maintain multiple versions, including patched versions, of packages which you can use directly or as a dependency (again, with an override) to other packages.
            Yes I know about overlays, the issues is you end up getting issues when you have to transitively patch items with overlays. I also had other issues with overlays in the past but I can't remember precisely since it was long ago

            Comment


            • #7
              I've switched to NixOS for my personal stuff, servers and desktop. It was a lot at first, but after I got my initial setup done it was very portable to other things I use. I'm also a home-manager user, which seems to be split on popularity. As far as upgrades, I wanted to make some more basic changes last time, so I went the wipe and reinstall route. By having my configurations, I moved them into place, resolved changes to match the new format, and was basically done with an identically functioning system in less than 90 minutes (I didn't time it.). I like that it is modern, yet stable is stable in my experience. It has also challenged me to learn some things I've been able to use on Debian. As a user, you sometimes run into out of date packages or things that aren't packaged (the amount of packaged stuff is fairly good now). Overlays are daunting at first, but once you realize what it is doing they are essentially cookie cutter. If you have to write a derivation for a new package (usually a python thing or the like for me), those also are really fairly cookie cutter. And with a derivation that package is self-contained which helps me feel like the system is clean. For server management, there are an excellent set of blog posts on using terraform and morph that got me going (and the author was responsive and informative when I had a question). It isn't for everyone, but it stays interesting to me because it pushes on my affinity for solving problems just enough without being excessive.

              Comment


              • #8
                The folks at Tweag.io offer a very detailed explanation of what they are working on and how they are improving Nix. Worth a read.

                What had to change in the Nix internals to make it able to build content-addressed derivations?

                Comment

                Working...
                X