I often hear folks in the Linux community discussing their preference for Arch (and Linux in general) because they can install only the packages they want or need - no bloat.
I’ve come across users with a couple of hundred packages installed (likely fresh installs), but I’ve also seen others with thousands.
Personally, I’m currently at 1.7k packages on my desktop and 1.3k on my laptop (both running EndeavourOS). There might be a few packages I could remove, but I don’t feel like my system is bloated.
I guess it’s subjective, but when do you consider a system to be bloated?
I’m asking as a relatively new Linux user - been daily driving for about 7/8 months
I’d define “bloat” as functionality (as in: program code) present on my system that I cannot imagine ever needing to use.
There will never be a system that is perfectly tailored to my needs because there will always be some piece of functional code that I have no intention of using. Therefore, any system is “bloated” and it’s a question to which degree it is “bloated”.
The degree depends on which kind of resources the “bloat” uses and how much of it. The more significant the resource usage, the more significant the effect of the “bloat”. The kind of resource is used defines how critical some amount of usage is. 5% Power, CPU, IO, RAM or disk usage have varying degrees of criticality for instance.
Some examples:
This system has a calendar app installed by default. I don’t use it, so it’s certainly bloat but I also don’t care because it’s just a few megs on disk at worst and that doesn’t hurt me in any way.
Firefox frequently uses most of my RAM and >1% CPU util at “idle” but it’s a useful application that I use all the time, so it’s not bloat.
The most critical resource usage of systemd (pid1) on my system is RAM which is <0.1%. It provides tonnes of essential features required on a modern system and therefore not even worth thinking about when it comes to bloat.
I just noticed that mbrola voices sneaked into my closure again which is like 700MiB of voice synthesis data for many languages that I don’t have a need for. Quite a lot of storage for something I don’t ever need. This is significant bloat. It appears Firefox is drawing it in but it looks like that can be disabled via an override, so I’ll do that right now.
My laptop is 6 years old and has been running arch Linux with xfce for most of that time. I got tired of maintaining it and changed to an “easy” Linux mint distro. It takes much longer to boot up now and feels generally sluggish in comparison to a minimal arch install. So from experience, in older hardware having a bloated distro can really slow down your system.
if you don’t have a printer, but it runs cups (and maybe even re-installs it when you remove it)
looking at you, ubuntu 😐
when it eated too much
too much libsodium
I don’t like when my PC/phone have a bunch of applications, so I try to delete all the ones I rarely use. Still some might find my devices bloated, but if I need/use them then I don’t see an issue.
When my calculator app in windows is suspended, but has locked 29 threads and is using 60megs of ram. Not that those two values are significant, but why is my caluclator-app “suspended” when I closed it a few days ago since the last time I used it? Shouldn’t it just be
closed
and not showing up at all.And why the fuck does a calculator app take 60MB of RAM when perfectly functional calculators ran on Windows 3.1 on systems with 8-24MB of RAM total?
When it’s Ubuntu? When it’s Fedora?
Relaaax. I keed, I keed.
It’s bloated when I cant look at any given package having been installed and understand within three dependencies why.
People favor Arch Linux for configurability, not lack of bloat. With the level of configurability that Arch offers, any DE can look bloated. On the other hand, if you are a new Linux user or someone who just wants to use the computer without so much personalization, anything Linux offers is lightweight enough. Even a decade old system has enough hardware to handle modern Linux distros effortlessly. This is probably what a regular user wants anyway.
Honest question, since it’s been 12 years since I last used Arch: what can you configure in Arch that you can’t configure in other distros? For example starting with a minimal Debian and building from that.
That’s hard to recollect off hand. But one thing I find easier with Arch (and Gentoo, which is my daily distro) is to create complex partitioning schemes (e.g encrypted swap and btrfs subvolume mounts) and boot loader configurations.
Another example is a window manager with a somewhat complex display manager setup and a ton of supporting services.
PS: I don’t consider Arch to be the silver bullet. For example, I always prefer Debian for servers.
I see. Easier in what way? They all have fdisk and the same basic tools? Does Arch have other tools beyond that which are unique to Arch? Is there a difference how you configure a window manager on Arch and Debian?
The problem I have is with the installer GUI. They often don’t work well when doing complex partitioning or mounting. Theoretically, you could use fdisk/parted on the live CD to do the partitioning. But the mounting section of the GUI (the part that creates the fstab) still struggles to map these new partitions the way we want it. This happens often when using btrfs subvolumes, LVM, dmcrypt or standard/custom ESP mount points (individually or in combination).
None of these are a problem when you are using a regular terminal shell to install the distros. You can just write fstab manually the way you like. This is a classic example of GUIs being convenient, but CLIs being more complete and powerful.
Theoretically, it’s possible to achieve CLI installation for other distros too. Debian, for example with debootstrap. However, those procedures aren’t as well documented as for Arch and Gentoo, because you’re expected to use the GUI installer. CLI installation just feels natural in Arch and Gentoo.
Another issue I have is with boot loader installation. I have 2 Linux distros (for genuine uses) and a BSD installed. I use rEFInd to manage them. GUI installers replace rEFInd with their boot loader. While this can be reverted manually, it’s annoying. But Grub has a CLI option to disable this (–no-nvram).
Does Arch have other tools beyond that which are unique to Arch?
Arch and Gentoo has additional small utilities like pacstrap and eselect. They’re not big, but are very helpful when you need them.
Is there a difference how you configure a window manager on Arch and Debian?
I always find it easier to configure things on Arch than on Debian. There are two reasons for this. First is that Arch has an extensive wiki written with the assumption that you’ll customize things (which is actually helpful even for other distros). Second is that software on distros like Debian are heavily patched for system consistency, while Arch and Gentoo provide mostly vanilla packages. This means that user documentation from the upstream software developer can be used directly on Arch and Gentoo, whereas you need to be aware of the patching in Debian.
One interesting example of the last point is the recent xz backdoor. That backdoor wouldn’t have worked if Debian and Fedora didn’t patch OpenSSH to talk to systemd. While Arch and Gentoo also reverted these backdoors, their OpenSSH were never patched and didn’t have this vulnerability.
Those are good points, thank you for explaining further.
No problem!
I’m not against bloat, I just want it to be MY bloat
Any stuff that I’ll only rarely use and that isn’t essential to make the OS work, I guess. It has nothing to do with resource usage for me
It’s bloat if it slows me down and brings me zero benefit. I have a few extra packages on my system, but it’s still snappy. That’s not bloat to me.
Bloat is when unwanted software gets in my way of doing my tasks, whether it be active presence or background processing.
My definition of software bloat is when the feature set creeps up to including features that the vast majority of users do not need to a degree that starts impeding the usefulness and usability of the software.
FreeCAD, for example. FreeCAD has several workbenches that it did or still does ship with that no one has a use for. The Robot bench, for example, which simulates those giant robot arms that build cars. The venn diagram of people who work with those robots and people who use FreeCAD are two circles 284 miles apart. There is/was a Ship bench that could draw a boat hull in one click. No one on earth needs that. A working Assembly bench? Still years away. Who on earth needs that? I’ve hidden a full third of the stock workbenches just to reduce the noise in the dropdown menu and it’s made the software more comfortable to use.
Linux Mint includes a LOT of little utilities, lots of little CLI programs and whatnot that the majority of users will never use, but other than occupying a few dozen MB of disk space it’s not really a problem. It doesn’t get in the way.
When stuff starts to get in your way or there is a performance hit greater than 7-10%.
Snaps are not bloat. Once I take 10 minutes to configure Firefox Snap disabling, it will never annoy me.
If the default software is shit (rarely on Linux), I replace it with better alternatives.
Using adblockers and systemwide HOSTS rules to block trackers/ads/junk/malware domains achieves 70-80% of the performance benefits in 5-10 minutes.
I use Debian 12 stable on computers alongside Windows and am happy.
I think there are several factors influencing when someone feel ‘bloat’. There’s the ‘purists’ that tend to optimize their system to be as ‘lean & mean’ as possible - relentlessly, and there’s the simplists that just want a simple setup/dashbord they can control - without too many options/distractions from info-bloat. Info-bloat hints to different types of bloat: filesize, dependencies, gfx details/animations, option-bloat, monetization-bloat and so on. There may also be cultural tendencies within different distro communities gentoo, tendencies from those with the emacs syndrome, or other more political groupings…
The last factor I can imagine atmo is that the level of hardware is very important and low end operators will tend to see more bloat when things run slowly - no matter their ‘bloat focus’.
I had some Pythoncode for you but couldnt get the codeblock to play along 🙃