Hey all, thought this might be of interest to some here.

Wrote about why I moved from NixOS to Ubuntu after using it for several months on my daily driver. Suspect that this take is likely to be kind of controversial and court claims of skill issues, which might even be true.

Let me know what you think.

      • I know, I’ve once messed around to install a newer QT framework which was required by some package I’ve downloaded directly. Did you install them from the repos or manually copied the files into place? At first I thought the issues were due to compiling source code, not installing conflicting libraries.

        •  fd93   ( @fd93@programming.dev ) OP
          link
          fedilink
          3
          edit-2
          2 months ago

          I actually can’t remember as it would have been 6+ months ago now. The issue is probably fixed already by the Debian maintainers / Elementary Team / both.

          Likely something with Meson build / apt not playing nicely.

          • I’ve been compiling apps depending on newer Qt and/or kdelibs versions for ages (back when the repository was literally called “kdelibs”, about 20 years ago).

            This has never been an issue for me. Even with autoconf/automake, I just compiled everything to its own prefix, so it doesn’t interfere with the system at all. You don’t even need to fix the build system in the cases where it’s broken/lacks features, if you leverage all the “path” variables (CPATH, LIBRARY_PATH, LD_LIBRARY_PATH, PKG_CONFIG_PATH, etc.). But autotools, cmake, qmake, and every build system I’ve used so far supports this out of the box.

            Not claiming it’s a skill issue, but I have to say I’m very surprised by reading any of this.

            Specifically, for Debian, I was told 20 years ago by a very wise person “you never do make install on Debian, specially not for the kernel”, and taught me how to use make-kpkg (or something like that, I don’t remember the name of the tool), which was a way to make a debian package of a self built kernel, which is obviously something that can’t be installed to its own prefix.

    • I also don’t understand. For compiling from source, why not use podman or docker to just compile everything into a tarball that can be extracted into /opt? I used to do this all the time when installing multiple php versions on a CentOS machine.

  • While many of the issues with Debian can be resolved by compiling from source, this has been one of the main causes of system failure for me in the past. It also requires equal or greater effort than playing with Nixfiles.

    I guess you are doing something wrong here. I can’t imagine that compiling stuff on Debian would be trickier than tinkering with NixOS.

    Maybe you have been following advices on the web instead of taking the time to understand problems and keep your Debian tidy?

    Besides, between an expert niche like NixOS and the popular Ubuntu, there are more than a dozen OSes you can consider when it comes to preferences on maintenance. You don’t have to consider so many, but a blog article on your particular three / four (NixOS, Debian Ubuntu + Mint) looks a bit off.

    •  fd93   ( @fd93@programming.dev ) OP
      link
      fedilink
      8
      edit-2
      2 months ago

      I’ve tried Arch and others as well, even stuff like Slackware, Bodhi, Void, but I’d say that my preference has generally moved away from doing tinkering / maintenance at all other than for fun or profit. I’d still consider Nix for a server / workstation setup but just not as a daily driver.

  • I really don’t get it, I moved to NixOS some years ago. Okay, first few months I had to fiddle with configurations and add some packages that were missing. Everything past those early months was a blast.

    Replacing a dead laptop? The most time consuming part (for me) is making a bootable USB. After that I can push my already ready made configuration and just back to where I was (backs ups are important).

    Working on different versions of Python? No problem, a small nix script for each environment.

    Working with different versions of GCC? Same as Python.

    Everything just works. And if I fuck around I can revert the change. I can easily experiment in a way that will no fuck affect my ability to work.

    At work we have Ubuntu, and I got the conclusion that nuking Canonical’s offices will be a blessing on humanity. They manage to deliver broken packages for years, even packages that work well on Debian.

  • Makes sense. NixOS isn’t for everybody and that’s fine.

    For people like me who don’t change things on the regular, it’s fine. But using the latest and greatest or having to customise stuff is really a drag. Getting a new electron app on nixpkgs can take a long time because doing it yourself is pain. It’s easier to hope somebody else will deal with that pain.

    Have fun on Ubuntu.

    Anti Commercial-AI license

      • It varies wildly, in my experience. A binary package in nix? For sure, easy. Any programming language with its own ecosystem: good luck. Python, JS, and anything electron is hilariously difficult to package when anything goes wrong. If it doesn’t work at the 5th try, gotta get ready for a long night.

        Even C/C++ projects that should “just work” with mkDerivation are far from trivial, but that’s also due to how shit the ecosystems of those languages are. “have A,B,C installed on ubuntu 18.04” and then you find out that there are actually a bunch more dependencies, or gcc is too recent, or you have to mess with the LD_LIBRARY_PATH, or or or or.

        There have been very, very few packages that I found trivial to package. nix is very good at exposing hidden dependencies.

        Anti Commercial-AI license

  • Yes and no. It depends on what your aim is. I LOVE Nix and it runs like a beast on my ZBook. But I’m after reproducible environments I can just blast around on all over the place without a heavy imagining solution. Works great for that.

    Does it take some time to setup as a daily driver? Yes. But no more than Arch. But the thing with Nix is if you already have a robust config, it takes less time than Arch to go from zero to stomping out code.

    Ubuntu is a great generic distro. But I find Nix gives me oomph. As with everything in this ecosphere…use what works for YOU! 😁

  • I like reading about OS journeys like these. Personally I ended up living with immutable fedora despite of its endless challenges, but I don’t think I’ll ever go back to mutable linux for my dev laptop. I feel immutability is a shield against change over time.