How to choose the perfect #Linux #Distro for you
This guide may be a bit different from what you know. Linux offers a ton of choice, and there are some factors you might want to think of, rather than using #DistroWatch or #DistroChooser for a half-baked recommendation.
Dont hesitate to try them out! But for a longer investment, make a good decision!
https://slrpnk.net/post/21305064
slrpnk.netHow To choose the best Linux Distro for you - SLRPNKIt is not easy to recommend a distro, even though many people are quick to
recommend one. This is because they may not think of all the things that make up
a Linux experience. ::: spoiler expand > ℹ️ A Linux Distribution (short Distro)
is a bundle of Linux together with many different components that make an
operating system. > These components include a package manager and a desktop
environment. > The package manager is important to guarantee that your system
will work and be secure in many years. > The desktop environment (short DE) is
what you interact with daily. They are very different, and most DE’s work on
most distros. There are many factors, and balancing between them is the only way
to get the right distro for you. After having tried a lot of them, these are the
main factors I would think of, when looking for the right one for you. > 🌌 Do
not hesitate to try Linux! Many Distributions can be tested on a LiveUSB without
installing. > Depending on the amount of switching and work want to risk in the
future, your decision is more or less important. Many people will try a bunch of
different distros and like the experience. > But if you install one for other
people or a company, a good decision may be more important. ::: ## 1. Desktop
Environment ::: spoiler expand Most common distributions will ship software that
you commonly use. But the desktop environments that you use to interact with the
PC are less or more supported, some distros may not offer some of them at all.
Generally, KDE Plasma [https://kde.org/] and GNOME [https://www.gnome.org/] are
the best, most modern, biggest communities, quickest maintenance, most features
etc. Here is how GNOME looks like: laptop with gnome desktop
[https://slrpnk.net/api/v3/image_proxy?url=https%3A%2F%2Fwww.gnome.org%2Fimg%2Flaptop.webp]
And here is KDE Plasma: laptop with KDE Plasma
[https://slrpnk.net/api/v3/image_proxy?url=https%3A%2F%2Fkde.org%2Fannouncements%2Fplasma%2F6%2F6.4.0%2Ffullscreen_with_apps.png]
Some distros have specific support for an environment. GNOME had the reputation
of being more stable than KDE Plasma, but this improved a lot. Due to this
reason (and because GNOME is simpler) many distros have GNOME as “main variant”
- Ubuntu, Debian - Fedora, RedHat Enterprise Linux, CentOS Stream, AlmaLinux
There are distros with KDE Plasma as main too - Manjaro (Arch based) - OpenSUSE
- TuxedoOS (Ubuntu based) - SteamOS (Arch based) - Bazzite, Nobara (Fedora
based) KDE and GNOME are generally well supported on all bigger distros. Other
desktops might differ. Fedora has a Cinnamon variant, but Linux Mint likely has
better integration, presets etc. So as a beginner, decide between GNOME and KDE,
they are both nice but different. ::: ## 2. Release cadence ::: spoiler expand
This is a big difference. On Windows you have each software release on it’s own,
and the desktop and OS being extremely stable, barely releasing any changes. On
Linux, traditionally you install your software from the same repositories as
your main system (including kernel, core tools and desktop environment). Though,
with things like Flatpak [flatpak.org] it is possible to get all the recent
apps, independently from your system). ### Quick Updates If you want up-to-date
software, you often need to choose a distro with fast or rolling releases. These
typically have a shorter support span, so version upgrades every 6 months or
year are common. Downsides are potentially more bugs, as the software you use is
newer and less tested. But if bugs are fixed, you get those fixes faster too!
You get way quicker features and many security updates not arriving in
“stable/stale” distros. Examples: - Arch - NixOS unstable - OpenSUSE Tumbleweed
- Debian testing Semi-fast: - Ubuntu - Fedora - OpenSUSE Slowroll ### Slow,
“Stable” Updates If you prefer stability and reliable software (so that you dont
need to update often, or change scripts or tools if software changes features),
you should use something with long support and slow upgrades. Note that
stability is not natural to most software. Most is “released when it is ready”.
- Only very few projects release on tight schedules (like GNOME, Firefox,
Thunderbird). - Way fewer developers “backport” all security fixes to old
versions. This means they apply only the security changes to older versions,
while leaving out feature changes (which could break compatibility). - The issue
is that most developers dont have the time to adapt to adapt their software to
all the different release cycles of different distributions - So you have
potentially broken or insecure software until there is a distro upgrade
Examples: - Debian stable - Ubuntu LTS - OpenSUSE Leap - RHEL, AlmaLinux, CentOS
Stream ::: ## 3. Project Size And Structure ::: spoiler expand ### Size 1.
Bigger projects (like Ubuntu, Debian, Fedora, Arch, OpenSUSE, Gentoo, NixOS)
have the most software support. This becomes less relevant through technologies
like Flatpak (a unified packaging format for all distros) 2. Smaller projects
(while nearly always being based on bigger ones) will often add more
quality-of-life changes, customizations and features. Take Nobara, CachyOS,
Garuda, Pop!_OS or Bazzite, which contain many improvements for gaming (more or
less at the cost of stability). Bigger projects are often more conservative,
with a focus on stability and not changing software a lot. Depending on the
distribution, you may also be able to do many changes yourself, while using a
bigger one as the base. ### Structure Most Linux Distros come from a
“community”. This is fundamentally different from Windows, MacOS, ChromeOS or
Android, which are sold products without much or any community involvement. The
projects differ in how you interact with developers, contributors and how people
in the community help each other. The “communty” is mostly never equally
distributed, as most users will not contribute to the project. Often the
developers communicate on Matrix, IRC or even mailing lists, users might
interact with them through bug reports. Forums are mostly used for users to help
each other, with mostly little interaction with developers due to their time
being scarce. Many free “community” distros are backed by companies, as making a
distro costs a lot of money and benefits from a stable base of employed people -
RedHat does their stable distro RHEL. - The “upstream” (the newer stuff that is
not as tested and arrives later in RHEL) is CentOS Stream, which technically is
already a community project, together with Oracle, AlmaLinux and RockyLinux
contributors. - The upstream of that is Fedora, which is a known, free and
up-to-date “community” distro. But also Fedora is built and maintained in part
by RedHat employees, so this is a mix. Other examples - Canonical - Ubuntu -
SUSE - OpenSUSE, SUSE enterprise Linux - System76 - Pop!_OS - ZorinOS,
EndlessOS: payment models - TuxedoOS - Tuxedo - SteamOS - Valve Many
distributions are entirely community based, like Debian, Arch or Gentoo. Some
have slight company involvement, like NixOS. ::: ## 4. Software Modifications
and Additions ::: spoiler expand Distros differ in how the projects modify the
software they ship. Some may focus on fast updates and little modifications,
like Fedora, Arch or others. Others like Ubuntu might add a completely custom
theme, font, iconset and other extensions (they do that to the main Ubuntu
variant, but Kubuntu, Xubuntu, Lubuntu are also all customized). Some distros
might change software, like Fedora or Debian who only ship free software
(software that respects users freedoms [https://fsfe.org/freesoftware]). > ℹ️
Example: > Debian modified Firefox in the past, to remove antifeatures, which
resulted in a ban to use the name. They used “Icecat” instead, but nowadays they
ship regular Firefox again. The Linux Desktop is only somewhat standardized
through organizations like Freedesktop.org [http://Freedesktop.org], who host -
(flatpak](https://flatpak.org/ [https://flatpak.org/]), a technology to ship
apps to all distros, while also using an Android-like sandboxing system. -
portals that allow applications to access system components while asking users -
Wayland, a display and input/output technology that all modern desktops and
toolkits use Examples of differences - Fedora and Ubuntu use different tools for
power management. - Most distros use systemd, a useful system management tool.
Some criticise it for being too big and doing too much. Very few distros do not
use it, at the cost of missing features and requiring more experienced users. -
Ubuntu uses Snap for their packages, most other distros use Flatpak. - All
distros have their own native packages, but there are a ton of different package
formats and rules. ::: ## 5. Deployment Model ::: spoiler expand This describes
how a distribution is installed and updates. ### Installation Distros are mostly
installed the same way: you flash an .iso to a pendrive, run a graphical
installer, select between more or less options, and get the thing. Some may not
have a graphical (GUI) installer but a terminal based one. Many advanced distros
like Arch, Gentoo or NixOS direct you to a wiki, where you learn the steps you
need to setup the system you want. This is a great learning opportunity, but may
require some time. If you want to install a more complex distro, maybe you find
someone to help you with the setup! ### Software installs and updates. Keywords:
- learning curve - stability over time Unlike Windows, software shoulf always be
done through package managers. > ⚠️ Do not go in the browser and get random
installers. > These might exist, and there are “Appimages” which allow
developers to package their software that way. But the install method is
insecure! > > While it may seem similar to Windows, MacOS or Android, those
operating systems include verification checks, antivirus and permission systems
that can stop a lot of malware. Linux does not have this, as repositories are
the intended way to install things (where those checks exist). There is a
difference how the software is placed and managed on the system. Most distros
are “chaotic” and imperative: You write… sudo apt install libreoffice …and the
package manager searches the repositories, gets the files and places them
somewhere. Over time, “state” builds up. This is the amount of changes on your
system compared with how it was at the beginning. The graph from this master
thesis [https://github.com/drupol/master-thesis] describes this process, called
“Divergent”.
[https://slrpnk.net/pictrs/image/d4b0642b-ab8d-4614-959f-9c4850d795be.jpeg] You
enter that command, and the package manager not only installs Libreoffice but
also many dependencies. ### Convergent There are many tools that try to tackle
the resulting “chaos”. They try to make the setup of your system faster and more
reliable. What happens if your PC breaks down, or you needed to configure your
exact setup on 10 different laptops? The most common tool is Ansible, which is
described as “Convergent” on the graph. The system is a chaos, but the more you
configure and “fixate” through Ansible, the easier it gets to reproduce. ###
Image-based There is a wave of new “immutable” distros, that try to solve this
issue: > Oh when you open the app XYZ it crashes? > Well, it works on my
machine… They do that by either preventing you to change the core system at all,
or always keeping track of the default setup, where your changes are just an
overlay on top of it. This model works for many use cases, as with Flatpak,
Homebrew and other ways you can install your softwate pretty normally. You will
not need to worry about the base system not being able to upgrade, or break in
other ways. ### Deterministic Systems like NixOS are deterministic instead of
imperative. To install software, you write down what you want into a file, and
the management tool reads it, checks it for errors and builds the system that
way. The graph describes this as “congruent”. At the beginning your system is
very simple. The more you configure, the more complex it gets. These distros are
perfect for more experienced users who want a stable and reproducible system
(i.e. when it breaks they know where the error is and how to revert it). Coming
from regular chaotic distros and then an “immutable” distro, this is honestly
pretty great. While the learning curve might be a little bigger, you can easily
check what you changed on the system, allowing you to fix breakages insteaf of
reinstalling every year. Everything is configured in a single – or a few –
files. You can take these and recreate your system anywhere If your PC breaks,
and you have your data, it takes a few minutes and you have your system back!
You can find a lot of configs on the internet, here is mine
[https://codeberg.org/boredsquirrel/nixos-config], where I try to visualize the
different levels of complexity, starting with a very simple system. ::: ##
Conclusions ::: spoiler expand Done! So these are the points you need to keep in
mind when choosing a distro. Yes it is a lot, but depending on your goal, it
might be an important decision. Do not just go to distrowatch or other random
places and install what is hyped the most. Examples for logical fallacies of
“this distro is the best for beginners” - Ubuntu has a big community, good
software support and is easy to install. But personally I had maany issues with
it over time and upgrading it. They also have a lot of biased choices and
modifications. Their snap store is not what any other distro uses (but they have
flatpak support), they theme the desktop and break some functionality, … -
Fedora also has a big community (and a nice one!), an easy installation and
stays with standards more. Their model of “immutable” (i.e. managed) systems is
among the best. Meanwhile the traditional variants usinf the dnf package manager
are a total mess. I had many extremely complicated and undocumented issues when
upgrading and having issues. Also, if you want a congruent, long-time-stable
system, it is kinda annoying. - “Linux Mint is userfriendly” is not completely
true. They do good work, but the project is very small compared to it’s
userbase, they build their own desktop environment that struggles to be
up-to-date. They dont use modern design choices like well working automatic
upgrades, leading many people to never update their systems. While many users
may use it for very simple tasks, it’s package based nature doesn’t make it very
suited for simple “install and forget” installs. The “most beginner friendly
distro” is not always the one that is quickest to install and easiest to use.
::: — There are some points missing which I plan to include - differentiation
between desktop environments - security - update behavior