How do you avoid bloat and problematic components in Gentoo Linux?
GentooThis forum is for the discussion of Gentoo Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
How do you avoid bloat and problematic components in Gentoo Linux?
Let's share our experiences.
systemd and PulseAudio often froze the shutdown process for a while. I replaced systemd with OpenRC. Somehow, GNOME crashed very often in the presence of some KDE programs. Thus, I ditched GNOME.
It turns out that RedHat has been forcing distributions to use their softwares long before the softwares became stable. Two (former) RedHat employees caught my attention. Lennart Poettering forced Fedora and other distros to use PulseAudio and systemd before they became stable. systemd developers forced distributions to use systemd by forcing udev to depend on systemd. udev was used by many distributions. Later, udev was eaten by systemd. Havoc Pennington founded freedesktop and forced major desktop environments and web browsers to use dbus via freedesktop. Havoc Pennington pushed a lot of things through freedesktop. Linus Torvalds had to stop dbus developers from shoving kdbus into linux kernel a few years ago. If dbus was replaced by kdbus, a lot of programs could break on *BSD.
I realized that ALSA + dmix would be just fine because I don't use bluetooth audio(which still doesn't work reliably on Linux. Thanks to bluez) or have a second sound card. I don't really use pulseaudio per-application volume, either. Thus, I plan to remove PulseAudio by moving to Gentoo Linux in the near future. I'll be able to reduce CPU usage and latency and remove an extra layer between ALSA and user applications. I have yet to decide how problematic PulseAudio is at this point, though. If I really wanted or needed a sound server in the future, I might try combining ALSA and JACK. Since Gentoo requires a lot of compilation, I will buy a new CPU.
I used NetworkManager without much thought when I used GNOME, but after replacing NetworkManger with OpenRC's network management capability, I gained more flexibility and more network configuration options. NetworkManager was difficult to handle directly via command line or text file configurations.
I'm not sure if I want to avoid dbus at all costs because gtk+3, many web browsers except qupzilla and surf, and many other graphics programs depend on dbus directly or indirectly. But, I can try to minimize dbus footprint as much as possible in Gentoo by USE flags. I could use qupzilla and surf if I wanted to avoid dbus in web browser, but qupzilla still pulls a lot of dependencies via qt5-base and ffmpeg. Plus, many other programs still require dbus. Thus, chrome or firefox with dbus seems to be a lesser poison than qt5-base or webkitgtk.
I don't have dbus on LFS, so I'm sure you can avoid it on Gentoo as well. My browsers are firefox, built with --disable-dbus, and links.
If I compiled every package manually, I could avoid dbus in any linux distribution in theory. But, that takes too much time.
If I wanted to compile packges manually, using LFS would waste the least amount of time.
A major reason that I want to use gentoo is to use global USE flags to turn off dbus and other unwanted components globally.
It turns out that it's not possible to do so in Gentoo with USE flags or package masks.
gtk+3 depends on dbus indirectly, and there is currently no way to make Gentoo build gtk+3 without dbus via USE flags or package masks.
I can't turn off (qt)dbus in many other applications via USE flags or package masks in Gentoo unless I maintain my own repository of ebuild files.
I also have little confidence that I can make Gentoo maintainers make dbus optional globally.
If they made dbus mandatory on purpose, I couldn't make a difference.
If they didn't, they might not want to spend many hours just to make dbus optional.
It seems USE flags are not granular enough.
By the way, even if you use LFS, you can't avoid dbus if you install gtk+3. Refer to https://bugs.archlinux.org/task/42808
It's best to avoid gtk+3 applications if you want to avoid dbus.
Perhaps, I should replace gtk+3 applications with qt ones.
It used to be possible to go without udev, dbus and almost anything that's considered "necessary" in most distros.
It's been 3 or 4 years since I tried something similar in Gentoo, though. I guess it must still be possible, but it all depends on how complex your dependency tree is Most gtk+-3 stuff will surely end requiring a bunch of stuff. Modern session managers also require this kind of stuff.
If you can live with a basic window manager and non-DE dependent applications it should be doable.
As for USE granularity, well, that depends a bit on concrete packages. There are many which are quite configurable, it all depends on the ebuild writer. It's easy enough to modify ebuilds to add more configurability in that regard. If it makes sense to do so, you can even submit the improved ebuild to bugzilla and it might get accepted into the official portage tree.
Quote: Reload this Page How do you avoid bloat and problematic components in Gentoo Linux?
openrc + eudev + lvm2 + luks + i3wm
bloatfree asks for a small desctop environment like i3wm or bare x server
--
the essential part is to review on every update, what will be installed or updated
do i need that pacakge now? check useflags, too many unwanted useflags pull in a rat tail.
at that point uninstalling won't hurt you, as it will be uninstalled and updated anyway.
Keeping the world file sane is also important
equery depends package
euses lvm
qlist -Iv package
ufed should not be used anymore, as it is not maintained anymore, and is superseeded by euses
--
grub package does not need to be installed as an ebuild. grub does not need to be updated anyway.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.