this post was submitted on 04 Oct 2024
12 points (92.9% liked)

Linux

47544 readers
713 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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?

top 10 comments
sorted by: hot top controversial new old
[–] velox_vulnus@lemmy.ml 1 points 35 minutes ago* (last edited 34 minutes 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@midwest.social 2 points 2 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.

[–] chameleon@fedia.io 1 points 2 hours ago (1 children)

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.

[–] velox_vulnus@lemmy.ml 1 points 48 minutes ago* (last edited 47 minutes 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 3 points 3 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 1 points 2 hours ago* (last edited 1 hour 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 3 points 4 hours ago (1 children)

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

[–] velox_vulnus@lemmy.ml 1 points 40 minutes 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.

[–] Novi@sh.itjust.works 7 points 6 hours ago* (last edited 6 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 2 points 5 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.