Is Gentoo more-or-less pointless for the average Linux user?
More specifically, Portage. I know use flags and "optimization" are all the hype, but really, would the average user even see a benefit from customizing all their use flags? Especially a benefit that compensates for the constant compilation?
I installed it once to help grow my e-peen, but immediately switched back to Arch after watching my system compile.
Those who daily drive it, do compilation and use flags annoy you, and do you see any real benefit?
The main benefit to using Gentoo is having complete control over your system. I've been a Gentoo user for nearly 6 years so the feeling of accomplishment has worn off long ago and now I feel like I'm using any distro which is a good thing. use flags come in handy when you want to install a desktop but none of the extra crap that's bundled with it or an application that has a feature that's disabled by default that you want to enable. Most packages take less than a minute to compile and on the stable branch, most of the big stuff only needs to update once in a while. From an outsider it sounds tryhardy to use Gentoo but in reality I'm using Firefox or playing a game while something compiles in the background which isn't as often as you think. I update once a week and it's usually 4 packages that take a minute to compile.
At some point breaking your system blocks your actual work and you get lazy, hence my return to debian and freebsd.
But when you're young and have the energy it's great.
Also, the optimizations never helped that much, maybe 2-3% or so usually, which considering the raw firepower a decent workstation has now just seems pointless, compiling xorg or kde aren't going to move that needle.
I wonder about the optimizations now. When I used gentoo it was an era where binaries were compiled for lowest common denominator targets. i386, ppc etc. That is they used no optimized instructions at all. It was the era where MMX and SSE were becoming a thing and there were genuine optimizations you were likely missing out on. So compiling your own stuff actually did show varying levels of improvement.
These days I'm pretty sure most binaries are detecting cpu flags and flipping on extra functionality when detected so the optimizations are less pronounced than they were.
But, I'd be interested to know if I've got that wrong. These days, I've gotten older and I don't have time to spend a weekend fixing my system when it goes wrong, as such I'm using pre-compiled distros. Often when they break I'll fall back to my dual boot windows until I have a block of time to fix it. How did I have so much spare time back then?
As someone who has daily driven gentoo in the past, I didn't see much benefit to compiling everything over my previous arch install. It was a mess to keep up long term and wasted a lot of power unnecessarily. I'm way more happy on fedora now.
One of the many values of GNU/Linux, and free software in general, is choice. You don't have to use any particular distro if it doesn't fit your use case or preferences.
I don't use Gentoo but really appreciate that it exists. If I ever wanted more control over my system, I could turn to this tried and tested distro.
I am quite lazy these days and from a short period of breaking Arch, I started breaking Debian, then staying with Debian stable without breaking it and now I have moved to MX Linux, which is Debian that someone else (the MX/Antix team) have set up in the way that I want without having to install everything myself.
But, yes. There is great value in Gentoo (like in Kali, Tails, Slackware, Guix, etc).
Yeah, the average user:
1) doesn't care what's running under the hood, and
2) doesn't want to control what's running under the hood.
I'm definitely not an "average user." I like specifying that I don't want wifi, bluetooth, or dvd functionality on my desktop when I have no need/desire to use them. So use flags are one of the main reasons I use Gentoo. Occasionally, it causes some mild irritation, but it's a net-positive for me.
You use Gentoo if you want control and transparency. It's great it if you are the kind of Linux user who wants things in a certain way and wants them to stay that way.
Do you want to use systemd or something else? Do you want to use pulseaudio, some other sound daemon or no sound daemon at all? X11 or Wayland? Emacs built with gtk, some other toolkit or no toolkit at all? Do you care if firefox is built with telemetry support?
If you have no opinion about this sort of stuff or your choices align well enough with a binary distribution then you are probably just as good using something else.
Like any distro, it's for who it's for and if you don't like it then feel free to distro hop until you find one you do. Why is the "average user" trying to use a "hard distro" anyway? Seems like the "average user" is increasingly "some rando who just wants to use their computer" so yeah, I'd say it's pretty useless for someone who has no use for it. I suppose it's more of an "if you don't know why you want it then it's probably not going to help you" sort of thing. I like that it lets me set things up my way then mostly just goes away until I want it for something. Other people like software that holds their hand or handles a bunch of things for them. It's fine, not everything must be for everyone.
You successfully evaded the actual question: what is the point of Gentoo.
Gentoo doesn't hold your hands, but that doesn't mean that it has a purpose for even the most enthusiastic users.
There might have been a time when compiling your own software was an actual benefit, but those days are long gone. When you're using Gentoo today it's either a hobby on its own (which is fine, but per definition pointless) or it's a flex (which is not so fine).
First off, I take issue with the idea that hobbies are pointless. If doing something makes you happy, that's worth a lot in my book: whether that hobby is playing golf or collecting stamps or using a non-mainstream distro.
To the point: for me, Gentoo has a purpose in that it's the easiest distro for me to maintain. Yeah, I had to negotiate the learning curve, but now that I have I know how to keep my install running and fix things when they break. Before my last computer died I was running the same install for 9 years straight, and my current install on my "new" computer is five years old. I never got that feeling of "system mastery" with Ubuntu or Fedora.
So there's your purpose: it works better for some people than other distros. Everybody has their own preferences and values, and Gentoo matches those for some. It may not be your cup of tea, but that doesn't mean that everybody should just use what you consider to be a "useful" distro.
From what I've seen, Gentoo was popular in the 2000's for users who wanted maximum control over their system. That means recompiling everything.
Sometimes the "maximum control" when too far when users set aggressive optimization flags that broke some packages. To the point that some upstream developers (e.g. Gimp) were refusing bug reports from Gentoo users because of the stupid optimization flags they were setting in hope of getting a "faster" system.
Anyway, it seems to me like the crowd who liked Gentoo has mostly moved to Arch. But I'm sure Gentoo still has its fans.
Real benefit. For average users it's debatable but if you want to exclude certain components or have complex dependencies "just work" without tons of docker images or need bleeding edge performance by tweaking everything, I don't see any other choice.
Also if you need to seamlessly integrate new projects that don't provide packages, writing a live ebuild is straight forward and will keep updated from a regular git repo just like any other package.
Want to compile certain stuff with clang and the rest with gcc? Or use libressl instead of openssl? Stuff like that? No problem. Just be aware that you might need to file bug reports if you do exotic stuff because gentoo won't prevent you from doing stuff nobody did before.
And installing gentoo by going through the install manual step-by-step, is certainly priceless for diving into linux under the hood. It's a bit like a LFS but without the hassle.
So, that sounds like the kind of thing you would want if you’re making something like a drone or a router, and you have very limited resources available in the device. Compiling can be done by a the cluster you you have in the factory, not the feeble pi zero on the final product itself.
However, I can totally see why many people would want to run Gentoo at home too. It’s a pretty cool idea, and if it’s cool you might be willing to put up with the drawbacks.
Highly customized/optimized Linux images certainly are one use case of gentoo.
if it’s cool you might be willing to put up with the drawbacks
The "cool factor" is a significant point. My gentoo laptop (which I update rarely besides browser/security updates) boots in under 3 seconds to graphical login :-)
Compiling can be done by a the cluster
Actually most compiling is pretty quick on modern systems (compile in DDR4 ramdisk, nvme, fast CPU etc.)
I'd say, most stuff compiles as quickly as installing a binary nowadays.
It's the huge stuff that's annoying: webkit, rust, Qt, boost, firefox/chromium etc.
But one can skip updates easily or use precompiled binary packages that are provided for big stuff.
Pi4 is perfectly doable. But Pi Zero won't be a lot of fun.
Well, all customizability arguments aside, there have been more than a few times I've looked at issues people on other distros are having, blinked, and thought, "Your package manager didn't take care of that for you?" Portage may not be the fastest gun in the west, but it's very good at what it does.
I daily drove Gentoo (Funtoo actually) for a couple of years, there are things to love and things to hate in it. For me it wasn't worth it, like you mentioned the compilation times ruined any semblance of optimisation I might had, also having to recompile the kernel because I forgot to enable joystick support was not a great experience. That being said, after the initial difficulty, Gentoo is a breeze to maintain, you have files with the packages you want, which use flags for each, etc so after it's setup once it's just normal upgrades. Also it allows for packages to be installed in one-shot mode, which means you're installing it but are not sure if you'll keep it, then you can run a command to list (and uninstall) all of them. That is one of the features I miss the most on Arch, since it allowed me to keep my system lean.
Annoy is completely the wrong term. You're getting to control over what is to be built and what's not, and since softwares are compiled and optimised according to my hardware, they are lighter and faster with less attack surface.
That may sound cumbersome for a novice to setup the portage configuration but in return it is really worth the time, and it is usually one time, unless you plan to add or remove features. But once you're satisfied with your configuration, you don't have to look back at it.
I found YouTubers complaining about going through hour long upgrade on the daily bases very misleading. Only a few core packages can take that long, which are upgraded on a quarterly bases.
Wait did you seriously called it a hype? Before switching to Gentoo, I was using Arch, softwares have better support of eachother and if feature isn't working you can always talk with the dev how to resolve it. They might even look into modifying the ebuilds to make them compatible.
FYI, I never came across any breakage and I've been using Gentoo for about an year now.
and it is usually one time, unless you plan to add or remove features
you don't update your system? this is what turned me away from gentoo. i setup my system just the way i wanted but everytime you upgrade you re-compile everything again and again. and some of those updates require some tinkering.
You’re getting to control over what is to be built and what’s not, and since softwares are compiled and optimised according to my hardware, they are lighter and faster with less attack surface.
How would in decrease the attack surface?
You need not only need the application and required libraries, you also need the full tool chain to build it, I don't see how this doesn't drastically increase the attack surface.
Because you can compile parts out of many programs and suites; you can also change dependencies, such as never including audio support or MP3 libs for anything. Sure it means no sound but if you're on a system without speakers then it's no real loss and you've reduced your attack surface.