2
How To choose the best Linux Distro for you - SLRPNK
slrpnk.netIt is not easy to recommend a distro (i.e. a combination of stuff including
Linux). There are maany factors, and balancing between them is the only way to
get the right distro After having tried a lot of them, these are the main
factors I would think of, when looking for the right one for you. ## 1. Desktop
Environment ::: spoiler expand The software that you use should be the same on
every distro. But the desktop environments that you use to interact with the PC
are less or more supported, or even available. Generally, KDE Plasma
[https://kde.org/] and GNOME [https://www.gnome.org/] are the best, most modern,
biggest communities, quickest maintenance, most features etc. 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 - Fedora -
RedHat Enterprise Linux, CentOS Stream, AlmaLinux There are distros with KDE
Plasma as main too - Manjaro - OpenSUSE (kinda) - TuxedoOS (Ubuntu based) -
SteamOS - 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. |
GNOME | KDE Plasma | | — | — | | screenshot of gnome desktop
[https://slrpnk.net/pictrs/image/c31fbd32-8332-4b39-be5c-7fc3129f0785.webp] |
screenshot of kde desktop
[https://slrpnk.net/pictrs/image/b9a2e001-c939-43fa-982b-e4e53de739d6.png] | :::
## 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 kernel, core tools and
desktop environment. ### Quick Updates So 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 - Gentoo -
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 and
shipped. - 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 devs dont care, dont introduce these random version freezes
(Debian, RHEL, Ubuntu LTS often use different versions too). So you have
potentially broken 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 The Project size often
implicates 2 things 1. Bigger projects (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 add
more quality-of-life changes, cool features and innovations. Take Nobara,
CachyOS, Garuda, Pop!_OS or Bazzite, which have more or less fundamental
improvements for gaming (more or less at the cost of stability). Bigger projects
are mostly more conservative, with a focus on stability. ### Structure Most
Linux Distros come from a “community”. This is fundamentally different from
Windows, MacOS, ChromeOS or Android. But there are also corporations: - 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 The projects differ in how you interact with
developers, contributors and how people in the community help each other. The
“communty” is not as simple, as often the developers communicate in some Matrix,
IRC or even mailing lists, and users might interact with them through bug
reports. Meanwhile, forums are often users helping other users. ::: ## 4.
Software Modifications and Additions ::: spoiler expand Distros differ in how
the projects modify the software they ship, and if they add additional stuff on
top. 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. Debian also modified Firefox
in the past, to remove antifeatures, which resulted in a ban to use the name,
they used “Icecat” instead. 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 component that does a lot of
useful things nowadays, but is criticised for being too centralized. Very few do
not use it, at the cost of doing many things nonstandard, missing features and
requiring more experienced users. - Ubuntu uses Snap for their packages, most
other distros use Flatpaks. All distros have their own native packages, but
there are a ton of different ways to do those. ::: ## 5. Deployment Model :::
spoiler expand This describes how you get the stuff. ### Installation Distros
are mostly installed in the same way, you flash a .iso to a pendrive, run a
graphical installer, select between more or less options, and get the thing.
Some may not have a GUI installer but a terminal based one. Many advanced
distros like Arch, Gentoo or NixOS (which also has a GUI though) 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 without guidance it is easy to break things. So
not recommended for beginners, for the main system. ### Software installs and
updates. Keywords: - learning curve - stability over time Unlike Windows, these
are nearly all done through package managers. Do not go in the browser and get
random installers. These might exist, and there is an abomination called
“Appimage” that pretends that this is fine, but dont. There is the mentioned
release cadence, but also 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 repo, gets the files and places
them somewhere. Over time, “state” builds up, which describes the amount of
custom stuff that differentiates your system from what Ubuntu would present you.
This 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 a
ton of more stuff. There are many tools that try to tackle this resulting
“chaos”, that would make you panic if your PC break down, or you needed to setup
that system on 10 different laptops. The most common one is Ansible, and it is
described as “Convergent”. The system is a chaos, but the more you configure and
“fixate” you through Ansible, the easier it gets to reproduce. There is a wave
of new “immutable” distros, that try to solve this issue: > Oh when you open the
app it crashes? > Well, it works on my machine… They do that by either
preventing you to change the core system at all, or making it pretty tedious to
do so. This model somewhat works, and with Flatpak, Homebrew and other fun stuff
you can get most stuff working normally, while not worrying about the base
system not being able to upgrade, or crash if you open the wrong app
(hyperbolic). 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. Coming from
regular chaotic distros and then an “immutable” distro (Fedora Kinoite and uBlue
Aurora), this is honestly pretty great. This is “congruent” as the graph
describes. While the learning curve might be a little bigger (I will make a repo
soon to make it easier, and there are a bunch of nerds willing to help), your
system complexity grows steadily, and all is configured in a single – or a few –
files. You can taks these and recreate your system anywhere, so you see a bunch
of NixOS configs on Github and elsewhere. If your PC breaks, and you have your
data, it takes a few minutes and you have your system back! ::: ## Conclusions
Done! So these are the points you need to keep in mind when choosing a distro.
Do not just go to distrowatch of 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 to biased choices and modifications. Their snap store is not what
everyone else uses (but they have flatpak support). - 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. - NixOS is unconventional and may be more difficult to setup. Their
community is big though, and they produce a ton of guides every day! They have a
bunch of packages, support flatpak, all (?) Desktop environments and much more.
So personally, if you want a very cool distro that might take some learning to
setup, but is extremely rewarding and… organized to maintain, I recommend NixOS!
I will upload my configs soon, stay tuned.
[https://codeberg.org/boredsquirrel/Nixos-Config]
yep, jerboa still does not have the cross posting functionality. you can try other clients like Thunder.
Jerboa is the only stable one I tried, but I will try Thunder. I like the simple design of Jerboa, tried Raccon but it was a bit too flashy. I like markdown preview tho