cross-posted from: https://lemm.ee/post/40063668
As a Linux newbie, all I know about Arch Linux is that it is a DIY distro where you assemble the entirely of the OS by scratch. Somehow it feels like it is too easy than it needs to be, even if it is primarily meant for experienced users. I imagine it to be less like building your PC from parts bought from the market and more like building each and every component of the PC by scratch along with building the PC, which I assume to be much harder for the average consumer. It seems absurd how it is possible for a single person to incorporate the innumerable components required for functionality in a personal system that does not crash 100% of the time due to countless incompatibility errors that come with doing something like this.
I would like someone to elaborate on how it feels to ‘build’ a system software by yourself with Arch and how it is reasonable to actually do so in a simple language. I do have some experience in programming, mainly in webdev, so it’s not like I need a baby-like explanation in how this works but it would be nice to get to know about this from someone who could understand where this confusion/curiosity is coming from.
Arch is a foundational distro like Gentoo. It is not fully configured and requires considerable configuration to be secure in ways that are not clearly defined. Pacman is an abysmal package manager for anyone short of a CS degree. Changes are regularly made that assume considerable knowledge of systems and otherwise require in depth reading. This often involves peripheral packages of no interest the the end user and where an incorrect choice may require loading from backups.
In the last 10 years I have run most of the major distros. Arch is the only time I have ever had to actually use my backups. The third time, I just moved on. Arch does a terrible job of describing these types of changes, and it is deeply frustrating to actually use Arch for some detailed project, need to install a package, have some tangent peripheral update that requires input, and get stuck in a rabbit hole of research because of the tangent. Arch will not make anything about this easy or clear like with Gentoo. Arch will dump you into some dev’s magnum opus of a wiki article that still does not layout the issue you are faced with. That article will put the user into a bottomless fractal links chasm of articles as a result, because nothing about Arch is tutorial.
Yes Gentoo has some binary packages. People run RHEL and Debian-stable as a desktop; they run Fedora as a script server; they use a steamdeck as a desktop. What a distro is known for is just a stereotype. It still applies and the exceptions do not change the primary use case.
The important choice right now IMO is how you protect your bootloader, but I’m a foolish intermediate level user at best. I do my best to tell people the counter point to the evangelical believers distro. It was by-far my worst experience with any distro and pushing beginners into that experience is downright toxically counter productive.
The best way to keep an Arch daily driver stable is to use a CoW filesystem like btrfs or ZFS and use a pacman hook that takes a snapshot before package installation or updates. If you run an update or package install that breaks something in an inconvenient way 20 minutes before you have to be on a call using said system you just revert to the snapshot, reboot and you’re rolled back. I’ve run Arch as my daily driver like this for 4-5y now and can count the number of times I’ve needed to roll back like this on one hand (mostly I just don’t run updates when I’m under time pressure.) Arch really doesn’t break in a major way all that often once you’re over the first 6-9mo of the learning curve, ie: it usually stops breaking once you stop fucking around and poking things while you’re learning about them.
I wouldn’t recommend Arch as a daily driver to someone who isn’t generally competent at linux admin and troubleshooting, it’s a handful for people who aren’t up on their skills yet. On the other hand it definitely will help you develop those skills, that just takes some time. A snapshot and rollback system gives you the freedom to break most things with a reliable way to roll back to a known good state afterwards.