TLDR: is the amount of time used to switch to these distros worth it? (compared to Debian, Fedora, etc.), or is there a better distro that fits my use case?

I have been using Linux for about 4 years now as my daily driver, distro hopping a lot. I have used PopOS (for a few years), Manjaro, Garuda (for a year or so), KDE Neon, Debian, Linux Mint, Nobara (for some months until I ran into system breaking issues), and lastly EndeavourOS.

Issues I have run into in the past are around the different packaging systems and versioning. The Debian/Fedora based ones seem to be fairly slow to update and so they have out of date packages, which sometimes is ok, but sometimes if they are too out of date I have to compile it from scratch. Also the different packaging systems (like apt, pacman, dnf…) means that depending on what flavor I am currently running there may not be a analogous system or maybe a package will be missing and I end up (once again) having to build it from scratch. On the other side I have Arch Linux based ones, which usually works great (especially having access to the AUR) but I end up spending a lot of time configuring stuff that isn’t built in (which is by design I know), or having stuff randomly be broken after an update. (which I suppose is my own fault I should have probably set up btrfs or something). Also some libraries will build/work great out of the box on some distros and be completely unusable on others for no apparent reason.

I looked into Gentoo, NixOS, and Guix SD as possible solutions for my issues. Gentoo because since it seems like I have to compile a lot of my libraries anyways maybe I should use a system where you have to compile everything. NixOS and Guix since it seems they are designed for package management and versioning built into the system which might be exactly what I am looking for.

I am worried about the learning curve of all of these. I don’t have a lot of time to mess around with configuring stuff all the time. Ideally I’m looking for a distro that works well with my old-ish hardware (with NVIDIA support unfortunately) where I can sit down, program and/or play games on steam+proton; but it seems like I have to choose between “system is stable but packages are old” and "system and libraries are new but is very unstable. Or if I am using snaps or flatpak its “install 5 things and now you are out of memory” (thanks electron).

Also concerned about both NixOS and Guix since they seem to be designed behind “everything goes through the package manager”, which is super cool for making it so the environment is the same, but I am concerned about getting stuff to work if a package doesn’t exist or if the library is designed to use like ‘pip’ or ‘bun.sh’ or some built in package manager.

Any thoughts about this? any non popular distros that might fit my use case? did I give up on some distro too soon? am I just a confused newb?

  • LalSalaamComrade@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    4 hours ago

    Since there’s no answer from Guix users over here, well, I use Guix as my main distro. The language choice is superior to Nix’s half-Haskell DSL. However, the bigger issue with Guix is the lack of maintainers. NodeJS hasn’t been updated since the last five year and Zig lacks a lot of packages. Another big issue is the centralized GNU server, which can fail at any moment. Their servers are all located in either the USA, or Europe, and for Asia, downloading NARs with such slow speed is a pain in the ass.

  • chameleon@fedia.io
    link
    fedilink
    arrow-up
    2
    ·
    5 hours ago

    All of the cool development-related Nix things like pinning a project to known-good library versions (for regression tests or otherwise) don’t really need you to run NixOS. If you like NixOS then it’s a perfectly usable distro for development work, but all of the powers come from Nix itself, and that can be installed anywhere you feel comfortable with.

    The only real pro of running full NixOS is that everything you work on will test a relatively uncommon *nix setup by its nature. Things like developer-only scripts with hardcoded #!/bin/bash shebangs are more likely to break on NixOS than they would on a conventional Linux distro with Nix installed. That’s something potentially worth fixing as it might also hurt the developer experience on *BSD/Mac systems.

    • LalSalaamComrade@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      4 hours ago

      Things like developer-only scripts with hardcoded #!/bin/bash shebangs are more likely to break on NixOS than they would on a conventional Linux distro with Nix installed.

      This can be substituted or patched to #!/usr/bin/env bash - it’s an easy fix. The actual issue is contamination of environment, caused by mismatching glibc-locale between the host package and third-party package.

  • flashgnash@lemm.ee
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    5 hours ago

    I use nixos for dev all the time, personally I think it’s great

    What I would suggest however is to install the nix package manager on another distro, learn how it works that way and then switch when you’re comfortable only using nix

    Flakes are absolutely incredible for development and I think every project beyond scrappy scripts should use them.

    You can specify all your dependencies (compiler, libraries, cli tools, environment variables etc) in your nix flake, then run nix develop and it’ll make you an isolated shell with all that stuff

    (For example, I don’t have go, rust or dotnet installed but when I cd into one of my projects directors it installs them to a temporary shell and catches them until I clean up)

    The flake also generates a lock file which specifies every version of every dependency with a git rev and a hash, meaning if you check flake and lock into git, anyone else who clones that project and uses the flake gets the exact same system you were using

  • badcodecat@lemux.minnix.dev
    link
    fedilink
    English
    arrow-up
    3
    ·
    6 hours ago

    ive used gentoo a lot, a big downside is the amount of time spent compiling, if you need to install a lot of softwares frequently it could be difficult. (though you can use --binpkg options to install binaries and some packages have a packagename-bin variant, and flatpaks + appimages are a thing) if your software needs rarely change than it can be fairly painless.

    the customization and speed are rivaled by almost nothing except for something like LFS. the package availability is great. you can also use custom patches easily as well as disable or enable specific software features (USE flags) . you can choose what packages stay at stable versions, testing versions, or even bleeding edge (-9999 version tags)

    for a more “standard” distro, i would recommend artix. it’s an arch based distro with your choice of init system (as a gentoo fan ill recommend openrc). i used the graphical installer to get it setup and it was a breeze. due to not being source based, and having access to the AUR you can quickly install any package you want.

    ive had it in my laptop for years and have been recently using it on my main pc for about a month.

    additionally regardless of distro (besides immutable ones), id recommend installing timeshift for backups, it actually doesn’t require btrfs! ive used it with both ext4 and F2FS and doing a quick backup before an update has definitely saved me a few headaches.

    feel free to ask me any follow up questions

  • degen@midwest.social
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 hours ago

    I went from Arch to NixOS, so I can offer a bit there.

    You definitely won’t want to rely on it until you know a good amount and get comfortable. Things can be made to work, but knowing how to get it done is the main thing most of the time.

    Regarding package availability, it’s just a matter of a few oddly esoteric incantations and version controlled code, usually. Binaries are another story but still possible, and python is a special case of that.

    It has been an annoyance for me, but I’ve also learned a lot by getting things to work. If you use any niche python stuff you’re bound to run into something. A bunch is already packaged and works fine, though. Either way there’s a bit of extra nuance, which is more to learn.

    You don’t have to start with NixOS and can feel it out using nix on any distro. It can be hard to tell if someone will vibe with it. All that said, it could be more than you’re looking to get into, but you can ease into it if you’re interested.

    • wewbull@feddit.uk
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 hours ago

      I feel like Nix is a good deployment platform, whereas Arch is a good development platform.

  • featured@lemmygrad.ml
    link
    fedilink
    arrow-up
    4
    ·
    8 hours ago

    I wanted to love nixos but it has many shortcomings that aren’t immediately obvious but can really stump you. No FHS compatibility seems fine but certain programs require it and don’t have nix native workarounds. Additionally, the documentation is really not good. I used it for a while but it got in the way too much; now I use a fedora variant and use regular Nix for dev packages using nix-direnv. Gives me the nix features while also having a fully compliant and functional base system

    • LalSalaamComrade@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      ·
      4 hours ago

      No FHS compatibility seems fine but certain programs require it and don’t have nix native workarounds.

      Nix, as well as Guix, both have the option to enable FHS emulation to resolve this issue.

      • featured@lemmygrad.ml
        link
        fedilink
        arrow-up
        1
        ·
        1 hour ago

        Well there are compatibility layers but they aren’t perfect. I’ve tried nix-ld, nix-alien, and nix-autobahn and each does work but not necessarily in all cases. I found this to be most common with scripts.

        For example, I tried to install the discord mod Vencord using these solutions, but even with the compatibility shell I could not get past the first prompt.

        Another issue I had was network authentication. An organization I’m in has a secure network requiring a web portal to sign in, and it uses a python script to get hardware details and install a certificate. This does not work even with FHS compatibility layers. I manually installed all of the python packages it wanted, which got it to launch and immediately crash. On traditional distros, it just works

        I’m rambling but yes these tools exist and they may make everything rosy for you, but be aware of their own limitations because they didn’t solve much for me

  • Novi@sh.itjust.works
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    9 hours ago

    Set aside a few weekends and mess around distro hopping. Think of it as a small scientific study. Use what you determine to be the most comfortable.

    I suggest being clever in your partitioning keeping /home and any other areas personal to their own partition if not their own disks. If you want to experiment you lose nothing by wiping / and installing something else. Also, you should decide on an effective backup strategy.

  • pastermil@sh.itjust.works
    link
    fedilink
    arrow-up
    3
    ·
    8 hours ago

    As a Gentoo user:

    If setup correctly, absolutely.

    Otherwise, it’s a nightmare.

    I’d say in most case, you’d want to pick something simple to get you up and running, as well as to set a baseline.

    If it’s work related, I wouldn’t go anywhere near anything that isn’t based on Debian, Ubuntu, or Red Hat.