So we can clearly see the most popular distros and the reasons why people use them, please follow this format:
- Write the name of the Linux distro as a first-level comment.
- Reply to that comment with each reason you like the distro as a separate answer.
For example:
- Distro (first-level comment)
- Reason (one answer)
- Other reason (a different answer)
Please avoid duplicating options. This will help us better understand the most popular distros and the reasons why people use them.
NixOS. Reproducible, Wide Package selection, Hard to fuck up + Not yet another Arch based distro
Debian
Void
Very KISS. Runit is amazing once you get used to it.
• Rolling release that is remarkably stable. • Supports a wide variety of architectures. • XBPS package manage • Lightweight, systemd free.
Supports musl on every architecture I have. ARM, AARCH64, x86_64 - no problem.
xbps
Stable rolling release
Manjaro, it’s just very stable, has access to the AUR, actually looks good and feels like a modern OS should feel.
I’ve been trying to convert to linux since the mid-2000’s. Ubuntu and derivatives, fedora, and SUSE. Gaming and my lack on knowledge always brought me back to Windows.
In 2018 I tried Manjaro and loved it. But I broke it without the knowledge to fix it multiple times. The Arch BTW memes were strong at the time so I took the plunge and studied the wiki, and documented my own installation process and really learned a lot in the process. Proton was released and suddenly gaming got WAY better. I didn’t remove my windows install completely until 2022 but Arch has been my home on my main machine.
I have since put together a proxmox cluster and run many distros for various things but that’s a whole other rabbit hole!
PostmarketOS
Runs all your favourite programs, on your phone, bells and whistles included
• Android-free Linux distribution specializing in supporting older smartphones.
• Up-to-date software based on Alpine Linux and focused on privacy and security.
• Highly portable construction centered around a single software base regardless of what device it’s running on.
- Goal of keeping a given device running and updated until it physically falls apart.
Manjaro
• Supports a wide variety of hardware, including ARM devices such as the Pinebook Pro.
• Up-to-date rolling release.
• Multiple DE’s available with customized, clean interfaces.
- Recommends rolling back system clock when they forget to update security critical website components.
Arch (BTW)
dupe
I’m currently happy with it
So many powerful tools that are not easy to find on other distros.
Basically, have fine tuned my setup so much that it’s almost impossible to think of another distro.
And with
archinstall
I’d argue it’s about as easy to install as most “normal” distros these days.I’d also agree… but everytime I tried to use archinstall, it always failed, felt impossible for me to install arch
Gentoo Linux
Being a source based distro, programs are compiled and optimized to your system configuration. Additionally you can add/remove features you dis/like using USE flags.
It allows me to run any weird combination of applications I feel I need on a given day, (fairly) easily integrating basically all open source packages with a custom/local overlay and have those managed as part of the system just like everything else.
Nixos Void Arch
Lubuntu
stable
lightweight
supported
intuitive
lightweight
good documentation
small
beautiful
deleted by creator
.
deleted by creator
deleted by creator
NixOS
Easy to mix and match package versions with different dependency versions
Makes me feel cool again 😎
I have been thinking to give NixOS a spin but feel like it’s above my brain capacity for me to handle. Do you also use homemanager and Flakes? Homemanager kinda makes sense (manage packages for non root users) but what does Flakes do?
I am already trying it and I am still no expert. How I understand flakes is that it is a file with inputs, like nixpkgs and other flakes or repos you might depend on and some outputs that can be things like a nixshell with packages and environment variables, custom packages and configs like your NixOS configurations and home manager. When you use your flake for the first time, by entering a nix shell with nix develop, building a package with nix build, rebuild your NixOS system with nixos-rebuild --flake .#<hostname>, etc, nix will generate a flake.lock file that stores the hashes of all of your inputs and thus pinning the input versions. This means that if you ever run any of those commands again, you should get the same result because the inputs are pinned and the same version. If you want to update, you just run nix flake update and it will regenerate the flake.lock file with new hashes for the newest version. The advantage with flakes is that it is fully reproducible, even if one of your dependencies changes, because the hash is specified and centrally managed in the inputs of your flake.
Nix flakes can be used for your NixOS system by adding the nixos configurations in the outputs of your nix flake and adding the dependencies like nixpkgs to the inputs. You can also combine it with home manager by either specifying it as a separate output or adding it as a nixos module inside the nixos configurations output. You just copy your existing nixos and home manager config to the folder with your flake and reference them inside the flake.nix. If you added home manager as a nixos module, you only need to run nixos-rebuild switch --flake <path-to-flake>.#<hostname> and it will automatically rebuild both your NixOS configuration and home manager configuration. You can then backup the folder with your flake and configurations by uploading them to GitHub for example.
The best resource I found was this 3 hour video by Matthias Benaets: https://youtube.com/watch?v=AGVXJ-TIv3Y&feature=share7
Thanks a lot for the detailed answer. It does sound complicated haha. I should probably follow along the YT video. Thanks again!
Many different and interesting community projects
Rollbacks
A cool logo, meaningful rolling release version names and stickers
Overlays
You get it for the low price of loosing all fun/motivation in setting up, customizing and mintaining machines with other distros
Very good with containers and VMs
Home Manager + Stylix
Easy and fearless updates
immutability
Can turn basically any distro into nixos in minutes
Easily build packages with custom compile flags
Do it once, do it right. Save work be redeploying the same configuration (or submodules) on mutiple machines or the same machine multiple times.
declarative configuration
Single command to compile & install packages from many git repos
A great selection and amount of packages and modules to build/install/enable
Dependency Hell, begone
As stable as you need it to be
Reproducible
Ez dev shells