Solving Distro Hopping by Building The Ultimate Arch

You will use Arch, by the way.

Pat Alcala
ILLUMINATION
8 min readMar 26, 2024

--

Image designed by the Author

Introduction

One of the unique features of Linux is freedom, something you won’t find in other operating systems, especially the one that is named after the thing you find in your walls. You know, the thing you always close to prevent bugs from entering your home. I think you know what I mean.

This philosophy of freedom also applies to selecting many of the distributions Linux has; however, this has led to a problem: it’s overwhelming. With hundreds of different distributions to choose from, it can be hard to decide which one is the best fit for your needs. Even if you research them one-by-one, you’ll still be left confused. Each of them has their own advantages and features that rival one another.

So, let’s organize these distros into categories: Desktop, Server, Privacy, and Security. I’m limiting the categories to computer use only; IoT and other devices are excluded. In case you’re not aware, Linux can be installed anywhere.

“Can I install Linux on my coffee?”

Uhmm. Linux can be installed almost anywhere.

The Categories

These four categories each have their own mindset and expectation of usage.

Security Distros

Usage: CyberSecurity
Mindset: Hacking, Security Enhancement, Vulnerability Exploitation
Expectation: it must have all the necessary hacking tools and softwares built-in and configured.
Example: Kali Linux, Parrot OS, BlackArch Linux, BackBox Linux

Privacy Distros

Usage: To be Anonymous
Mindset: Privacy, Identity Security
Expectation: it must have strong privacy and anonymity features, encrypted communications, and tools to protect the user’s identity and data.
Example: Tails, Whonix, Qubes OS, Kodachi

Server Distros

Usage: Running Server Applications and Services
Mindset: Stability, File Security
Expectation: it must never encounter crashes and provide a robust, secure, and high-performance environment for running server workloads.
Examples: RHEL and its clones, SUSE, Debian Stable, Ubuntu Server

Desktop Distros

This is the category where most users distro hop a lot, not because the distros in this category are terrible, but because of the urge to find the most ideal desktop experience that’s perfectly aligned with their personal preferences and can truly be called ‘My Personal Computer.’

Usage: Personal
Mindset: Productivity, Gaming, Work
Expectation: it must have all the necessary drivers for my hardware, run everything smoothly, and be personalized.
Example: Most of the distros

Arch Linux is my recommendation for the Desktop Category

As the title suggests, if you’re one of those people who couldn’t figure out which desktop distribution you wanted to settle into, I highly recommend considering Arch or Arch-based distros. With its flexible and versatile approach, you have the best experience building any personal desktop you want. Although this is also true to other distros as well, the Arch community stands out due to the extensive range of packages, options, and accessibility. To me, it easily surpasses other distros.

“But isn’t it hard to install Arch?”

Actually, it’s not. But I wasn’t a fan of it either, mainly because of its time-consuming method of installation. Manually writing every command can lead to mistypes, which will result in bugs, and if that happens, you have to start all over again. If only there’s an IDE for installing Arch, but it’s not programming; it’s just installation. You have to manually and carefully check everything you type before executing it.

Thankfully, there’s an installation script built-in inside the Arch ISO called “archinstall”. It’s like having a terminal-based installer. This saves you a lot of time when installing Arch, but be warned, it’s not for everyone. Basic knowledge of manual installation of Arch is still required; it just makes installation easier and more time-friendly.

Image captured by the Author

All you need to do is type “archinstall” when you boot into the ISO.

“I prefer the Calamares installer, like most Disto uses. Is there a way we can use that in Arch?”

Yes, there is. In fact, there are multiple ways to install Arch using Calamares.

If you don’t know what a Calamares installer is, It’s a universal installer for Linux that aims to deliver a very easy but customizable experience.

Arch-based Distros with Calamares Installer

ALCI (Arch Linux Calamares Installer)

If you’re looking for vanilla Arch in Calamares, look no further.

Endeavor OS

A repack of Arch with additional tools and themes. But they also offer to disable everything and install the bare minimum, very close to vanilla Arch. Born after the death of Antergos, it’s even considered a rebrand of Antergos.

CachyOS

Arch with a modified kernel for speed and stability. Additionally, they have optimized separate versions of packages to leverage the latest architecture of the x86–64 chipset.

ArcoLinux

From the same team that made ALCI (Arch Linux Calamares Installer), but with the same vision as Endeavor OS: To build a repack of Arch with additional tools and themes while staying close to vanilla Arch.

Garuda Linux

Arch with steroids. A repack with combined configurations and optimizations from different technologies injected into one system. But it’s overly customized, in my opinion.

Archcraft

A repack of Arch that uses minimal software by default.

Manjaro Linux (not recommended)

A rebrand of Arch that holds package releases to enhance stability. Notice that I describe it as a rebrand, not a repack like the rest. That’s because, when using Manjaro, the vibe is different. It held back not just the packages but also the updates for a long period of time, and it became something else, no longer Arch.

Artix Linux (use with precaution)

Arch without systemd. Offers openrc, runit, dinit, and s6 instead. Be mindful that some applications are dependent on systemd. That means if you choose this distro, you will have to find alternatives to systemd-dependent applications.

And many more.

Arch-based Distros that have their own GUI installer

Crystal Linux, InstantOS

It won’t matter which distro you choose from the recommended ones; they are all still Arch under the hood. However, few had optimizations that weren’t present in other Arch-based distros. So, we will need to implement those optimizations and integrate them with your chosen distribution.

Configure Pacman

In other distros, the very first thing you should do after installing the operating system is to update it, right? But on Arch, this wasn’t the case, at least not yet.

You will first need to configure the package manager to enable fast downloads and a better experience when updating and installing software. Edit the pacman.conf file with your favorite terminal text editor for this. I will use Vim.

sudo vim /etc/pacman.conf

Inside pacman.conf, make sure you have the following present and uncommented:

Color
ILoveCandy
VerbosePkgLists
ParallelDownloads = 5

You can increase the number of parallel downloads, but 5 is the default.

Refresh Pacman

This will apply the new configuration without updating your system.

sudo pacman -Syy

Install git and wget

sudo pacman -S git wget

Install PARU

— skip this step if you prefer using Yay.

If yay is installed:

yay -S paru

if yay not installed:
Execute the following line-by-line:

cd /tmp
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
cd

Install Rate-Mirrors

paru -S rate-mirrors

Configure Mirrors

In configuring mirrors, the very common approach is to set the nearest location. But it’s not always the best approach; having the nearest server doesn’t guarantee a fast connection. Instead, rate your mirrors according to latency.

rate-mirror --protocol=https --disable-comments arch | sudo tee /etc/pacman.d/mirrorlist

Depending on your chosen distro, mirror servers and the file for the mirrorlist may vary. EndeavorOS mirror may look like this:

rate-mirror --protocol=https --disable-comments endeavouros | sudo tee /etc/pacman.d/endeavouros-mirrorlist

You can check yours by running:

cd /etc/pacman.d
ls -l

Update

Now you are ready to update.

sudo pacman -Syyu

Install Linux-CachyOS Kernel

— skip this step if you have chosen CachyOS as your distro.

paru -S linux-cachyos linux-cachyos-headers

Install CachyOS Repo

— skip this step if you have chosen CachyOS as your distro.

Execute the following line-by-line:

cd /tmp
wget https://mirror.cachyos.org/cachyos-repo.tar.xz
tar xvf cachyos-repo.tar.xz && cd cachyos-repo
sudo ./cachyos-repo.sh
cd

Install Chaotic-AUR

— skip this step if you have chosen Garuda Linux as your distro.

Execute the following line-by-line:

sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
sudo pacman-key --lsign-key 3056513887B78AEB
sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'
sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'

Update Pacman Configuration

You’ll need to make another adjustment to pacman.conf, this time to tell it about the expanded source of packages we have setup.

But first, you need to identify which highest version of x86–64 your machine is supporting. You can skip step if you have chosen CachyOS.

To identify, run this command:

/lib/ld-linux-x86-64.so.2 --help | grep supported

You have x86–64 v4 support if the output is this:

x86-64-v4 (supported, searched)
x86-64-v3 (supported, searched)
x86-64-v2 (supported, searched)

Open pacman.conf using any text editor and add these:

[cachyos-v4]
Include = /etc/pacman.d/cachyos-v4-mirrorlist

[cachyos-core-v4]
Include = /etc/pacman.d/cachyos-v4-mirrorlist

[cachyos-extra-v4]
Include = /etc/pacman.d/cachyos-v4-mirrorlist

[cachyos-v3]
Include = /etc/pacman.d/cachyos-v3-mirrorlist

[cachyos-core-v3]
Include = /etc/pacman.d/cachyos-v3-mirrorlist

[cachyos-extra-v3]
Include = /etc/pacman.d/cachyos-v3-mirrorlist

[cachyos]
Include = /etc/pacman.d/cachyos-mirrorlist

[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist

You don’t need to specify v2 packages, they all universally supported and the default.

You have x86–64 v3 if the output is this:

x86-64-v3 (supported, searched)
x86-64-v2 (supported, searched)

Then you have to add this to your pacman.conf

[cachyos-v3]
Include = /etc/pacman.d/cachyos-v3-mirrorlist

[cachyos-core-v3]
Include = /etc/pacman.d/cachyos-v3-mirrorlist

[cachyos-extra-v3]
Include = /etc/pacman.d/cachyos-v3-mirrorlist

[cachyos]
Include = /etc/pacman.d/cachyos-mirrorlist

[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist

If the output is this:

x86-64-v2 (supported, searched)

Then you only have to add this to your pacman.conf

[cachyos]
Include = /etc/pacman.d/cachyos-mirrorlist

[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist

Apply Mirror on New Repos

You will now use the CachyOS repos as your main repository, so you need to rate it in order to find the best mirror server.

rate-mirror --protocol=https --disable-comments cachyos | sudo tee /etc/pacman.d/cachyos-mirrorlist

If you have x86–64 v4, you will need to duplicate the mirror, but rename and edit the content of that duplicate:

sudo cp /etc/pacman.d/cachyos-mirrorlist /etc/pacman.d/cachyos-v4-mirrorlist
sudo cp /etc/pacman.d/cachyos-mirrorlist /etc/pacman.d/cachyos-v3-mirrorlist
sudo vim /etc/pacman.d/cachyos-v4-mirrorlist
sudo vim /etc/pacman.d/cachyos-v3-mirrorlist

Add _v4 to every mirror, for example:

https://aur.cachyos.org/repo/$arch/$repo

Will become

https://aur.cachyos.org/repo/$arch_v4/$repo

Same this with x86–64 v3:

# before
https://aur.cachyos.org/repo/$arch/$repo
# after
https://aur.cachyos.org/repo/$arch_v3/$repo

Install Flatpak

paru -S flatpak

Update and Reboot

You will need to reboot the system in order to use the new CachyOS kernel and Flatpak to activate before you update.

sudo pacman -Syyu

Congratulations! Not only have you expanded your package sources, but you have also configured them to automatically install the optimized version of each package by default.

If you have given a choice which version of package you should install?

Follow this guide:

Cachy version > Official > Chaotic-AUR > Flatpak > AUR

Cachy version — packages that are specifically built for the Cachy kernel and the x86–64 chip version you have.

Official — packages that were officially built for your installed distro.

Chaotic-AUR — packages that were hand-picked by the Garuda team from the AUR server and built into a binary that is easy to download and install.

Flatpak — third-party packages that are generally available to all distros.

AUR — packages that were built by the Arch users community. Note that some of them were unmaintained and outdated. Only consider installing this if no other packages are available from the options provided above.

Thanks for reading. Hope this helps your distro hopping.

--

--

Pat Alcala
ILLUMINATION

Computer Engineer, Writer, and Technology enthusiast | Buy me a coffee https://ko-fi.com/patalcala