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
    1
    ·
    edit-2
    3 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.

  • degen
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 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
      ·
      2 hours ago

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

  • chameleon@fedia.io
    link
    fedilink
    arrow-up
    1
    ·
    4 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
      1
      ·
      edit-2
      3 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.

  • badcodecat@lemux.minnix.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 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

  • flashgnash@lemm.ee
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    4 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

  • 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 with.

    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
    ·
    7 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.