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?

  • WalnutLum@lemmy.ml
    link
    fedilink
    arrow-up
    5
    ·
    4 hours ago

    Active GuixSD user.

    Our application catalog is much smaller than many other distros simply because we don’t have the userbase large enough to surface the volunteers necessary to support it. So you will have to learn to write your own packages eventually

    That said, if you know your way around functional languages (in this case, scheme), it’s probably the easiest time I’ve ever had writing a package. Everything that goes into the script is known at the time the script is written, so weird extrinsic problems don’t really occur after you’ve written the package.

    Some stuff that you and the guix maintainers may not have the time to support will also get updated more slowly.

    Luckily flatpak exists, and is a godsend for the new wave of read-only (functional/ostree-based) OSs.

    Biggest appeal for me was having all my configuration in one place (and documented) so if I forget I did something in 6 months, it’s always staring at me in my home or system config file. You can accomplish the same thing by being diligent with say, script files, but it’s drop-dead easy to just maintain a system and home descriptor file and keep editing that.

  • data1701d (He/Him)@startrek.website
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 hours ago

    Question: What are you developing?

    With that said, NixOS would probably be fine, if not better than fine. From what I can tell, I don’t think Guix would be a good idea - the packages appear out of date, according to their package manager. They’re still on Python 3.10.

    However, I might recommend Debian Testing to you for your purposes. Most of the time, packages are pretty recent, maybe a few months old at the most (sometimes just a few weeks), but you still get most of the stability of regular Debian. The only asterisk is when the freeze happens. I think apt may have gotten some updates as well.

    I’ve been using it on my desktop PC for over two-and-a-half years. I will say I have grown a bit weary of it, as it gets so many updates and software changes so fast. On my laptop, I went with stable and plan to switch or stable on my desktop once Trixie gets stable.

    In brief, Testing isn’t bad. I’d almost recommend a development VM.

  • nyan@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    4 hours ago

    Gentoo is its own thing. You can bump packages yourself a lot of the time with a few commands. Or have the package manager install directly from upstream source control, if that’s your bag. Or you can hold on to older package versions for periods ranging from months to years, by stashing ebuilds in a local repository. At the same time, portage has reached the point where it bends over backwards to keep you from breaking stuff by accident. If you’ve done your setup right and use primarily stable keywords, breaking changes are very rare. And you’re free to install things outside the protection of the package manager, or package things yourself if you don’t mind working with bash scripting.

    The tradeoff for all of this is that you have to spend a fair amount of time setting up and configuring stuff, and a fair amount of time compiling software if you want a USE flag combination other than what’s on the binhost. It also helps to spend time learning the ins and outs of the portage/ebuild ecosystem if you’re going to do anything unusual.

    As for the proprietary nvidia drivers specifically, Gentoo currently has versions 390.157, 470.256.02, 525.147.05, 535.183.01, and four different 550+ available, which should cover most hardware of the past several years.

    If you want to see whether certain software has been packaged without installing Gentoo, the best place to check is gpo.zugaina.org. The search function isn’t all that bright, but it’s the only site I know of that indexes all the official overlays and the Gentoo bugzilla along with the main repository.

  • LalSalaamComrade@lemmy.ml
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    10 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.

    • WalnutLum@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      4 hours ago

      Doing a reconfigure right after a pull and half the packages don’t have substitutes yet 😭

  • degen@midwest.social
    link
    fedilink
    English
    arrow-up
    4
    ·
    12 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
      3
      ·
      9 hours ago

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

      • degen@midwest.social
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 minutes ago

        Generally I agree. It feels kind of shoehorned in when desktop is your goal, like more of an afterthought or side effect of the overall focus.

        The main thing I hang on to is the code-specified configuration. I never got into managing dotfiles with arch, but that could be a better solution for many people. Especially along with btrfs, numerous containerization options, and whatnot.

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

  • featured@lemmygrad.ml
    link
    fedilink
    arrow-up
    6
    ·
    14 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
      2
      ·
      10 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
        2
        ·
        7 hours 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

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

  • Novi@sh.itjust.works
    link
    fedilink
    arrow-up
    7
    ·
    edit-2
    16 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
    4
    ·
    14 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.

    • cakeistheanswer@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      1
      ·
      6 hours ago

      Gentoo is an open book test on compile flags at all times.

      All you have to know is all your system variables, compiler flags that exactly two distros use, init, daemons and hardware and it’s great!

      On some level I admire the people who know that stuff, but I’ve had my OS compiled for me for a long time. I loved portage once I figured out how to use it though.

      I might add some version of Suse (open or enterprise) to that list though. Last I checked there were a bunch of shops kicking the tires as cent os shut off. Didn’t keep up on how that turned out.

      • pastermil@sh.itjust.works
        link
        fedilink
        arrow-up
        1
        ·
        5 hours ago

        Gentoo is surprisingly reliable as personal system. I like how you’d be able to customize stuff compile stuff, making it leaner than most setups.

        I’ve heard a lot of good things about SuSE, but it’s mostly from the community and not the enterprise side of things. I’ve never seen enterprise setup with SuSE, whereas the three I mentioned earlier I’ve seen all the time.

        • cakeistheanswer@lemmy.dbzer0.com
          link
          fedilink
          arrow-up
          1
          ·
          5 hours ago

          Zypper is very solid, and I can’t say anything bad about suse, but it was 15 years ago I was strictly working off of VMs while the company I was working at advertised support. If there wasn’t the Debian social contract I think a lot more projects would have forked it.

          They had a better reputation down the company chain than redhat, but the orders always seemed to go to IBM.