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.
- Arch
- Debian
- My favorite overall, they’re community-run, stable, well-maintained, have a rich history of being awesome, and they’re just top quality general-purpose distros. I tend to use Arch for more recent desktop systems and Debian for server systems or older desktops.
- NixOS
- What I’m dabbling with currently, the concepts here are amazing but it’s a bit of work at first to truly get value out of it. Still, seems to be a good option for my next notebook OS.
- Fedora Silverblue (respectively the immutable variants)
- Also cool, as is Fedora in general, although with the recent Red Hat fiasco and Fedora’s plan to introduce opt-out telemetry I’m more hesitant now. Some time ago I’d have listed Fedora at the top but now it’s slid down a bit.
- Mint
- Kubuntu
- Easy recommendations for new users coming from Windows
- VanillaOS
- I like the idea of making it possible to install packages from all distros (they will then run in a distro-specific container). I wouldn’t use it, but it’s cool
- Kali
- Tails
- Alpine
- From the more specific distros
- Slackware
- Honorable mention, because it introduced me to Linux back in the day (yes, I liked starting the
hardUnix way). I wouldn’t recommend it these days but it’s kind of like the granddaddy of all Linux distros, and it was awesome in its prime. I’m sure it can still be used today but it’s gotten quite niche.
- Honorable mention, because it introduced me to Linux back in the day (yes, I liked starting the
NixOS, I have a fetish for configuration files
dupe
I’m currently doing my second pass of Nix after diving deep into it last time and coming out unsatisfied. The same problems that I had before with it are problems I’m seeing again:
- disjointed configs pulled from random source or build repos on the internet
- unintuitive grammars with parameters that require you to download an autocompletion spec
- flakes that aren’t immediately easy to grok
Contrast that with my last Guix experience:
- Lisp form, super easy to understand grammar
- Recipes are so trivial that I’ve written three on my first day
- Source tree is included and you are expected to add branches to it
The only problem with Guix that I can see is that it’s not as popular
Flakes are extremely simple (my whole system is a flake: https://github.com/cmargiotta/dotfiles ), but they are basically not documented.
The grammar is really really bad, I prefere a lot the Guix one too! I am using NixOS only because the last time I tried Guix I didn’t find a lot of packages for their extremist GNU policy (I agree, but I need some packages), is it still like that?
is it still like that?
Yes and no – there are now non-free repos (so you can install firefox for example), and even non-free binary repos too.
Arch, BTW
Great wiki
The AUR
PKGBUILDs
Lubuntu with lxqt desktop environment and i3 window manager.
Mint. Easy to setup, fast to run, and very reliable.
Mint
Generally works in cases where Ubuntu would and you don’t have to deal with Canonical’s choices.
Arch. I can’t live without the AUR at this point.
We cannot forget about the wiki, which is a great resource for not only the Arch distro, but for any Linux install.
NixOS
Easy and fearless updates
declarative configuration
Dependency Hell, begone
Rollbacks
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!
Manjaro. It just worked on any device I installed it on. And wifi just worked with no fiddling.
Then I installed it on surface tablet. What didn’t work, I found kernel fixes I could implement.
Of all the distros, for me, it was the easiest to use, install and manipulate!!
Switched to Manjaro after running vanilla Arch for several years and haven’t looked back. I appreciate the slightly less bleeding edge updates and extra added stability around it.
Easy installs are probably less of a big deal nowadays after Arch overhauled their installation process.
Manjaro is my main distro too! The package manager is great!
Manjaro friends unite!
Pop!_OS
I agree, it’s great!
- image with baked in nvidia drivers which work out of the box without too much fuss
- if you encounter problems, you can refer to the system76 website or use a solution provided by the community, since it’s based on Ubuntu
- installation with full disk encryption enabled by default
- right now it uses a slightly customized version of GNOME as DE (with “normal”/traditional windows and optionally a tiling wm), but system76 is working on a Rust-based DE, named Cosmic DE
I’ve been using Pop for about 2 years. I have yet to run into an issue that I couldn’t fix. It’s the first distro that made ditching windows easy.
I feel the same coming from Mac. Things seem to just work. I’m not a Linux wiz so minimal headaches while learning to tinker make it perfect for me.
Debian
- Very stable, and can run the bleeding edge through Snap/Flatpack/Appimages, Distrobox, or VMs/Containers
Arch Linux
- Packages are kept up to date so it’s often the first distro to support new hardware, APIs, etc.
- AUR provides a huge library of software that isn’t often in package manager repos.
- Rolling release so you don’t have to deal with repository upgrades every 6 months to 2 years.
- btw
My favorite too. For me on other distros I was typically running into bugs that I’d find had already been fixed upstream months previously - and then I had to either live with the bug or do some hack to manually install the newer version. Somewhat related to this, but as Linux gamer it was also frustrating to have the older Mesa drivers all the time because it couldn’t support the older kernel version the distro shipped or something.
My current isn’t vanilla arch, but Endeavour OS, because as an unexperienced user I wanted to have the least trouble while installing, … I regret it ever since, because I began with a Plasma desktop and ended up with i3, mainly because of tiling, problems with some utilities, keyboard switching, etc. In the end, I still love the system, one can get quite minimal with it.
I love that you talked about regretting it. Using one of the arch-based diaries that obfuscates the installation process honestly destroys a lot of the benefit of using arch. Having to vaguely understand how the system fits together makes fixing issues a million times easier.
Yep. And I still forgot to mention one thing. It is a 2016 Macbook Pro, which basically means just more work fixing.
Just switched to Artix after using Mint for half a year
Debian
Gentoo
Ubuntu
Shit just works
A lot of proprietary software is easier to install here
Because it just works. Because it’s based on free Debian and not corporate RedHat. Because mainstream Linux needs a flagship distro and that distro needs to be used and supported.
I can use the same OS on my servers