The appeal of Gentoo is not compiling everything from source, it's having the freedom to install anything you want on nearly any hardware all with stellar documentation and minimal roadblocks. Want to run Enlightenment with OpenRC and NetworkManager on a laptop from 2008? Install Gentoo! Want ZFS as root on a smart refrigerator? Install Gentoo! Want a vanilla Gnome + SystemD install on a brand new laptop? Install Gentoo! The decision to ship binary packages only gives users *more* choices while other distributions have been actively removing one's freedom to choose. Debian, the so-called "universal operating system" just dropped 32-bit x86 support. You can install an alternative init system on Debian if you'd like, but it's a bit of a PITA. Meanwhile Gentoo allows you to pick between 17+ different stage 3 tarballs and 35 eselect profiles. Personally, I enjoy compiling everything from source and the flexibility that comes with it. On modern hardware it's painless. If you disagree, great! Go install a shiny new binary. The selling point of Gentoo has never been portage. It's always been the flexibility and the community.
> Debian, the so-called "universal operating system" just dropped 32-bit x86 support.
This is imprecise at best. There was a meeting where the release team concluded that most likely, there will be no _installer_ and _kernel_ support for 32-bit x86 at some unspecified point in the future. (At the current point in time, both are still delivered and fully supported.) In particular, you can still run multi-arch 32-bit/64-bit, allowing you to run 32-bit x86 software.
Not really the point I was trying to make. Gentoo still fully supports obscure architectures such as IA64 and PowerPC 32-bit while Debian dropped both back in 2018 and 2020. Hell, not only does Gentoo still support them but the handbooks are still updated regularly. When that unspecified point in the future comes knocking for 32-bit x86 Gentoo will continue to be a rock for fun devices like my Lenovo x60 with libreboot. :-)
Does Intel or anyone still sell 32-bit x86 chips for non-embedded use? A quick Google was inconclusive, although it seems that while Intel sells low-power x86 chips under the "Pentium Silver" brand, they all seem to be 64-bit now. So eventually more and more old x86 boxes will be decommissioned, and 32-bit x86 will be dead as a desktop platform, no?
Which might mean people who want to run old proprietary 32-bit games/software are going to be annoyed, but that's not necessarily the distro/OS's problem; it could be argued that the user should install a 32-bit translation/emulation layer to run that stuff, ala DOSBox.
>while other distributions have been actively removing one's freedom to choose
I think that's a bit unfair. Everyone wants to support everything, but at the end of the day if you want to guarantee security and maintenance and do the job of a distribution you have limited resources on what you can look after. Something always has to give.
On any Linux distribution anyone can install what they want, but what you can genuinely claim to support is always limited by the amount of maintainers you have.
Perhaps I was being overly harsh. That being said, there is a certain philosophy of non-intervention which gives Gentoo a sense of freedom that other distributions lack. It’s not only about diverse support, it’s about allowing the user to choose upfront. Arch does this as well (mostly). It’s easy to choose your own bootloader, WM/DE, audio server, and etc. I just think that Gentoo takes this philosophy one step further. If you want to install an alternative init system on most distributions you can… but you have to uninstall SystemD and all its weeds first. Gentoo’s solution is simple. Give the user a choice on EVERYTHING upfront.
The one place Arch still is fairly opinionated compared to Gentoo is being all-in on systemd. That's not to say you _can't_ remove/replace it, and obviously there are Arch-like distros that give other options, but my sense is that GP's comment about Gentoo's draw being completely agnostic to whatever configuration you want makes Arch having even a single strong opinion feel pretty different to users who care about that. I think you're probably right that most people probably don't need that, but then again, even as an Arch user, I think most people probably don't really need the amount of customization that Arch lets you have; I just happen to like it.
Definitely a lot of crossover. However, there are several things that make Arch unusable for me. The #1 thing is that Arch only officially supports AMD64. Additionally, while I find Arch’s documentation better than most, it’s hard to understate how amazing the Gentoo wiki is. Lastly, I prefer portage overlays (like Guru) over the AUR. Bigger !== better. Again, the beauty of Linux is choice. Nothing but love for my Arch neighbors!
Also a die-hard Gentoo fan (daily driver for 20+ years).
I tried Arch and what astounded me the most is that the docs didn't seem as good as Gentoo's. That surprised me because I end up looking at Arch's docs all the time and it's all of a very high quality.
But the Gentoo Handbook is really a masterpiece. I've never read a clearer explanation of how to go from unformatted disks to a working system.
I used to use Gentoo 20+ years ago; installing it was eye-opening. It helped me enormously to understand how Linux works.
I then moved to debian/ubuntu and recently switched my main server to Arch. And you are right - I got back this feeling of having all my 10 fingers in the system and living on the bleeding edge.
Now: this was probably not the brightest choice, as this server rund my docker containers and basically nothing more so it should have been Debian(a fire-and-forget OS)
Exactly my case. Used to use Gentoo, got tired of every other update breaking the system, was told on IRC that if I didn't like "free" updates (because apparently my time and serenity have no value) perpetually breaking the system I could go use something else, and that's exactly what I did. Arch is solid.
Yes, but it's a shame. Especially now Gentoo has these binary packages there's really no reason to choose arch. Arch is like "choose any system you want, as long as it's x86-64, systemd etc"
I can't install Gentoo, specifically, the part where I have to install a BIOS or UEFI grub2 bootloader. No I did not use a musl and / or clang profile. With this being my first impression, unless Gentoo or a downstream fork comes with a installer, I won't consider it.
I'm going to install Solus OS / Solus Linux soon, had a good first impression with it's package manager, which claims to be reproducible but not like nix or guix are.
I have a work laptop that's pretty cursed when it comes to booting anything that isn't Windows or Fedora. I only recently got Arch to boot, and then only by using UKI and skipping the bootloader by directly registering it in UEFI. Maybe Gentoo has instructions for doing the same thing? I think it's actually simpler this way, it's just far less obvious and very new.
Depends upon the device. I typically opt for compiling the Linux kernel myself but certain devices (like my Lenovo x60s) would absolutely melt if I compiled it from scratch. Thankfully, Gentoo offers gentoo-kernel-bin. Meanwhile my brand new GPD Win 4 Pro has a stupid nvme that requires 6.6.5+ to boot making compiling the only option (until a couple weeks ago at least).
Gentoo's big attraction for me is Portage. It goes beyond just providing a build environment and dependency management. Ebuilds (Gentoo packages) are supported by great tooling and Eclasses that handle a lot of corner cases in builds. Developing Ebuilds feel like doing a real software project, and is great for anyone who wants to experiment with packages that are not in the official repository. Coincidentally, I just published a tool to manage unprivileged chroots for testing ebuilds.
This development will make Gentoo more accessible for a lot of people. But I guess this isn't for me. My build configuration (like CFLAGS) are never going to match the official binaries and so they will never get used.
I agree on customizing the package flags, and features. When using Gentoo in production it became an important part of our security posture to omit the features and integrations with unused software.
That being said we've always had a build host dedicated to producing binaries, but the actual support for binaries in Gentoo hasn't been great. Unsigned serving over HTTP or NFS of compiled artifacts is about all you get. I'm really pumped to see that the new package format adds in cryptographic verification that really should have been there all along even for internal only serving.
For me this is great news for less powerful devices I use that I don't feel like setting up a binrepo for (especially when it involves cross-compilation), but still want to reuse my portage config and custom ebuilds for.
For less powerful devices it has always been possible to install Gentoo in a chroot directory on a powerful computer, using a configuration appropriate for the less powerful device, compile and install in the chroot environment any packages, and then just copy all the files from the chroot directory, through Ethernet or using a USB memory, over the root HDD/SSD of the less powerful device.
I have used Gentoo in this way on many small computers with various kinds of Atom CPUs and with a small DRAM memory and small and slow SSD/HDD.
With multiple computers of a compatible kind, the files from such a chrooted installation compiled on a powerful computer can be copied over all of them and everything will work fine. If the chrooted installation is preserved, it can be updated later with other software packages and all the changes can be propagated with rsync on all other computers.
Linux is not like Windows, which will complain when run on a different computer than that on which it was installed initially.
This tool [1] does the exact same thing - except that you nuke the chroot when you're done. And the reason is the same - to find all necessary dependencies. I had a small script that eventually became a Rust program. Then I kept adding features to it until it became what it is now. That's the reason why I never really got to explore the alternatives. Anyways, it's usable and nearly done.
Thanks for suggestion though. I'll take a look at it.
Yeah, my CFLAGS won’t either. But I have to say I’m tempted to script something up so I can override all the plasma-related packages to use the common ones, or something similar, so I build everything where I care about speed myself and let the gui stuff be binary packages. Would save a whole lot of build time, and I’m not sure it would be much of a loss.
Here you go [1], [2]. It's not completely ready yet - but it's usable. It should be OK if you plan to just modify or reuse parts of it. It currently supports btrfs backend. Plain directory backend and packaging of the tool are not done yet - but shouldn't be too hard. I was keeping it for tomorrow. Meanwhile, you can use asciidoctor to convert the docs if you need to refer it.
Say what you will about Gentoo as a concept, it was a lot of fun when I was 17 learning more about software packaging, distributed compilation, and the ins and outs of compile-time optimization, not to mention Linux kernel optimization. And their community had pretty nice docs from what I recall. I think a few of my patches are still knocking around in some releases.
I finally realized all the tweaking and optimization and bleeding-edge software wasn't worth it once I discovered my Slackware boxes ran as fast as the Gentoo ones. Maybe there's a few very specific applications out there that benefit from all the tweaking and custom compiles; perhaps a render farm or crypto miner? But my games got the same FPS on either distro.
CPU-specific optimization has waxed and waned in importance over the years. It used to be that a lowest common denominator compilation would not even include MMX or SSE, which could make a huge difference for some kinds of CPU-bound algorithms. However, it was always possible to do a runtime CPU feature detection and run the optimal version, so compile time feature selection was not the only option.
Then AMD Opteron came out and got everyone on a new baseline: if you compiled for amd64 then that meant a specific CPU again, there were no newer instructions yet. Now AMD64 has several levels[1] which can start to matter for certain kinds of operations, such as SIMD. A more mundane one I often run into is that v2 added popcnt which is great for things like bitsets in isolation, but in overall program performance I measure almost no difference on any of my projects between v1 and v3.
When it comes to games, it's more than likely your games were binary-only and already compiled for the lowest common denominator and maybe used runtime feature selection, and even then, they were probably GPU-bound anyway.
Years ago, somehow, I wasted hours and days of computer and my time, compiling and fine tuning my gentoo system, god knows why, when next day I anyway format it to install newly arrived Ubuntu cd.
Everyone please realize that just because you did something and no longer do that thing does not mean it was wrong to have done that thing.
All of us who at one point compiled our own kernels and now no longer do, are the killers that we are partly because we did things like that at least for a bit. It only makes sense not to now, after having done it.
It's not true to suggest (or to read these stories as a new bystander and come away with the idea that) "if I were smarter I never would have wasted time on that"
I hear your point that the act or process of doing the learning is good, even if the end result is that you shouldn't do the thing again. Such as learning assembly but then only doing web development for a profession where you don't need to know assembly.
However, I think that the statement below might be better with a bit of nuance.
> It's not true to suggest (or to read these stories as a new bystander and come away with the idea that) "if I were smarter I never would have wasted time on that"
I would say its "not true always," in some cases doing the action really wasn't worth the time.
Related to this, I believe the sentiment people have about regretting wasting time on some endevour, is a misalignment of what their intention was to begin with.
For example, if someone wanted to compile their own kernal because they wanted to learn and understand more about their computer its unlikely that they would walk away from that experience with regret. However if they wanted to compile their own kernal because they believed that in doing so they would make 10x more money in the long run (through learning so much), and that goal failed to materialize. They would likely tell others to not waste their time learning to compile their own kernal.
Not trying to be pedantic, or argumentative, I aggree with your point deeply, however I wanted to discuss it a bit further. Let me know your thoughts.
Same, but I learned so much while doing it. Eventually I got tired and moved to an arch and got most of the same without always fighting broken packages. But I still use the knowledge I gained dealing with random low-level issues when they crop up.
I had a similar experience with the Gentoos/Arches of the world. I'd never use Gentoo or a Gentoo-like as my primary OS for anything, likely for the rest of my life, but it still ended up being one of the most valuable operating systems for me to spend some time on.
You and me both. But, we learned a lot. Nowadays I feel like Linux is my super power, OS, VM, Container, Nix-shell, WSL2. It’s all Linux. And you can drop me on any command line (even a BSD one to some extent) and I will feel at home and can solve problems. I’d like to think that’s where my happy time with Gentoo led to.
And no matter if its true (and it might well be!) the overarching tendency to look for reasons to explain time spent with Gentoo should probably tell us something.
At best, we are at least a bit confused about it all.
Gentoo’s biggest attraction for me was always the USE flags - being able to turn off the X integration of mpg123 where CentOS demanded an entire X install to get the command line player.
I too used to obsess over customizing my OS. Now I just install Debian, a handful of programs I use daily and that's it. I can recreate my setup on another machine in 20 minutes.
They talk about the shell as an IDE. My entire desktop is a 14 year experiment in tuning productivity. My ~/bin/ folder has around 100 scripts and maybe 20 are little scripts i wrote in conjunction with i3. Pretty cool how it stacks up over time
The only cool thing about it is that it’s declarative: nix-darwin everything and a fully working and customized machine is up in 10 minutes with one command
When every ounce of power mattered, fine-tuning your OS made sense.
Nowadays most people are swimming in CPU cores and gigabytes of ram and terabytes of solid-state memory, so fine-tuning is a waste of time (unless you play bleeding-edge games). But it wasn't always such.
I think the biggest case where Gentoo still makes sense is when you have a large fleet of identical machines. In that case, the effort put into tuning your installation will be multiplied across the number of machines it's applied to.
For a single machine home install, the biggest value Gentoo has to offer is the learning experience. I ran it for about a year like 4 years ago, and I definitely learned a lot in that time. Hopped around a bit and I've since landed on GNU Guix, and I'm probably set for life now in the GNU world.
When every ounce of power mattered, fine-tuning your OS made sense
I used to believe that and was a huge Gentoo user for years back when it was initially released. Then one day I benchmarked Gentoo and a default RedHat install on every work load I cared about, and everything was within the margin of error.
Made an ancient computer with very limited CPU usable for my siblings with Gentoo. The secret is to do USE="-* minimal" and enable things that are required from there. Compiling a custom kernel was actually necessary because it had a really old NVIDIA card that was no longer supported and I had to patch something to do with MTTR. Installed XFCE 4 and it idled with 70 MB of RAM used. Could play Youtube videos without the whole thing freezing whereas Debian could not. Gentoo is great.
The time I "wasted" with Gentoo in 2005 taught me enough about how Linux works to land me my first real IT job. I will forever be grateful to that distribution.
I had toshiba satellite with some whooping 96MB RAM... as main computer even... happily ran Windows 98... them I got the book "Linux from scratch" the rest is history... now I am happy mac user.
But then you have to deal with big upgrades that might break your system and old packages (or start randomly adding PPAs etc.) A rolling distro means you can continually keep up with small changes and only adopt big new pieces (like systemd, pipewire, wayland etc.) if/when you are ready to.
I've installed Gentoo literally two times. Once per PC. Been using it for years. It's not like you have to keep tweaking it. It does help if you run a basic system like me, though (no DE, simple tiling WM, don't use much apart from Emacs and Firefox).
Yea, same here back in the day. Stage 1 installations for Gentoo really made me interact with the kernel and software in a different way. It did not just work, but while solving the issues, I learned a lot on how things worked internally. It's a great thing to get really familiar with the workings under the hood.
Same, this was around 2004-2006ish when I maintained a Gentoo build for my Pentium 4 box. There was this somewhat draw to me of compiling my own binaries highly optimized to my processor and that Portage mostly works. But my gosh, gcc build times are killing the fun. When Ubuntu arrived and saw my peers being productive, I switched.
On my first pc assembled from used parts, I was able to squeeze every bit of compute out of gentoo. Being able to build smaller binaries by excluding dependencies seemed to help a lot. I used it until the first ubuntu was released and it just worked and worked well. The only problem was that it was an ugly brown.
I ran Gentoo for a long time in the early 2000's. I learned nearly everything I know about Linux machines in general from that experience!
What was interesting about the USE flags was learning that a given package even HAD a particular integration with some other library / package. Realizing that the SQLite3 binary doesn't work the same when you don't have readline support linked to it lead me to understand what readline was as a whole. That happened over and over again for a lot of the "invisible" libraries that are always included on every other Linux system.
Absolutely invaluable learning tool at the right time in my life for sure.
You’re not alone! I run Gentoo on all my devices. GPD Win 4, Pixelbook with coreboot, my NAS, and a VPS. Why (IMO)?
1. Best documentation I have ever used.
2. Infinite amount of customization. Your system can be as minimalist or maximalist as you’d like.
3. Portage overlays > AUR any day of the week.
4. Choose your own init system. Want SystemD? Fine. Want OpenRC? Go right ahead!
5. It’s hard to understate the power of a good community with well-described values. I feel safe and at home with Gentoo because I know that it will always value the #1 thing I care about on Linux: freedom. Gentoo is like a choose your own adventure. Want to run SystemD + Gnome + PulseAudio + binary packages? You can do that. Want to run OpenRC + Hyprland + Pipewire + NetworkManager instead of netifrc? Go for it!
Gentoo isn’t about compiling everything, it’s about choosing everything. Today’s announcement (although irrelevant to me) gives users more choices.
I would still be using Gentoo if NixOS hadn't come around. I like Gentoo just fine, but being a sysadmin for NixOS is much easier than being a sysadmin for Gentoo.
> I wonder what makes me different such that Gentoo is the best for me.
Ok, I'll bite: why is Gentoo best for you? (I'm not going to try to refute any of your statements should you reply, I promise. I'm genuinely curious.)
I'll offer my own experience why Gentoo is not for me: I don't run my own server, and at work I use servers in the cloud (Ubuntu based, I guess? Or AWS-flavored). No compiling any kernels or whatnot.
For the desktop, a friend convinced me to try Gentoo 10+ years ago ("it's compiled for your specific hardware, it'll be faster!"), I gave it a try, wasted lots of time getting it running, then saw it wasn't really noticeably faster for any task I did than regular Ubuntu, and took longer to get set up. So I ditched it.
Another common claim I found to be false (in my case): "I learned so much configuring Gentoo!". Well, no. I mostly followed the recipes like almost everybody else, setting flags and touching config files I didn't really understand, so I can safely say I learned nothing -- I just went through the motions.
That's what is weird; I don't know why it's better for me!
I can understand that you didn't learn anything from installing Gentoo. I did, but in my case, I was not like most new Linux users; instead of immediately trying to learn the details when I started, I just wanted to install Ubuntu and get working.
It was only six years later that I installed Arch, then Linux from Scratch, then Gentoo, and in the process, I had many lightbulbs trigger. "Oh, that's why it's like that!"
As much as I love Gentoo, I agree with you: the "faster" argument is a myth.
I hope you can tell I'm not trying to evangelize. :) You said you weren't going to refute that Gentoo is best for me; well, I'll go the other way and not refute that Gentoo is really bad for nearly everybody!
Anyway, I'll take a stab at why Gentoo is best for me: extreme customization. See, there's another way I'm not like most people; others start out with extreme customization and ricing, and they back off of it over time. I started with little and have only grown my customization over time.
Maybe it's because I'm on the spectrum, but computers are annoying to use for me by default. On Gentoo, however, I can make my setup fit me more than any other distro.
Another thing that might contribute is that I like lean setups. Just checked with `ps --ppid 2 -p 2 --deselect | wc -l`, and subtracting the terminal, shell, ps, and wc, there were only 30 processes. And that includes niceties like redshift and picom.
Because I do heavy fuzzing, that matters to me. Also, it is responsive; slow responses bother me more than they do others.
But to be clear, that doesn't refute your experience that Gentoo isn't faster; it took a lot of work to get Gentoo to this point, and it isn't default.
Not the same person you're replying to. But I have some ideas to share.
> Another common claim I found to be false (in my case): "I learned so much configuring Gentoo!"
This isn't true for everyone. My general plan with anything is to follow the script exactly at the beginning. If that works out, start making incremental changes until something breaks or until you're satisfied. Gentoo taught me a lot of things that way - especially the kernel compilation (which is important to me anyway, due to my profession). Before this, it was Arch. And a regular Linux distro before that. All of them taught me something with the same strategy during the initial phase. Eventually the struggle gives way to familiarity and learning rate starts to fade.
> Well, no. I mostly followed the recipes like almost everybody else, setting flags and touching config files I didn't really understand
I don't know about anyone else, but Gentoo config files were the easiest for me to understand. I feel very much in control with them. The Gentoo wiki doesn't just give you recipes - they always tell you the exact reason for a configuration or flag (This is true for Arch as well). I have also created packages for myself - so I have a reasonable understanding of USE flags. I've been thinking about migrating away from Gentoo - but I like USE flags so much. Sometimes they allow you to access application features that are not available on other distros (because they have to choose build flags that suit the majority).
Something that helps me with this level of control over the configuration is that I maintain them as literate org-mode files with explanations and even diagrams at times. This might seem like too much work for a desktop system. And often that is true. But this workflow suits my interests and profession really well. In fact, at least 3 custom programs are part of my desktop - configuring Gentoo to my liking is the least difficult part in it.
> Ok, I'll bite: why is Gentoo best for you?
Finally. I said this in another comment. The most attractive part of Gentoo for me isn't the custom compiled kernel or software (I use flatpaks for most desktop apps). It's the package management system. Portage is by far the best system I've experienced for creating system packages.
It has zero opinions about how my system should be configured or what options the installed software should have. It lets me build precisely what I want to build without any hassle or compromise.
> I mostly followed the recipes like almost everybody else
The thing I really like about gentoo is I have a virtual/akira package. It brings up any system precisely the way I want it. If I have a new system I can just install that virtual from my overlay repo and be in business within a few minutes.
I wrote this virtual 10 years ago. It still works perfectly. Ironically, I guess I could say, I choose gentoo because I want to spend _less_ time managing my system, and it enables that in a way that no other distribution has for me ever.
I use Gentoo on my personal servers because it offers the customization I want with the ability to easily install from source some various strange things I have laying around.
It's a rolling release so it never has a "major blow up day" - at worst I have to spend 5-10 minutes on a "breaking" change.
My desktop is just a Mac, but my Gentoo server provides the Linux I need.
(Work servers are Ubuntu because work software wants something well-known.)
Do you have machines which "just work"? Not a daily driver machine or server that you mess with every week, but something you set up long time ago and that has been working even since. Something that you may only log in few timers per year, if that.
I stopped using Gentoo when I got my made my first "production" system: I made it, people started using it, and it was "done" - as in, there were no more any reasons to log into it daily, or even weekly. I'd still want my security updates and very very rarely there would be a new feature that required new package, but otherwise I wanted system to be steady. And Gentoo is a horrible fit for this usecase - even on my personal desktop where I updated weekly I had emerge build failures practically every time; and a system which might not be updated for months would be even worse. So I went to Debian, and it was good (especially with unattended upgrades), and I eventually switched all my machines to it.
If you use Gentoo, do you have any machines that you don't tinker with weekly? How often do you update them, and how often do you need manual intervention to finish the update?
Oddly enough, on my family's farm, we got a DeLaval voluntary milking system, i.e. milking robot. Very pricey piece of gear. And several of it's embedded computers for some reason run Gentoo.
Extensive binary packages would have been nice back in the years when Gentoo was a meme OS; CPUs were a lot slower and not multicore. I don't have a use for them now.
Anyway, the best OS is the one you already know how to use.
One of the reasons I moved from Gentoo 15+ years ago to FreeBSD was that it was mandatory to compile everything while FreeBSD provided binary packages.
It may be not that important today - but it was a game changer with single CPU core and 1GB RAM.
Sad to say that you are completely right, for the longest time after being on gentoo for a long time I switched to macos for a few years, and was using gentoo prefix, which is vastly superior than Homebrew. I added patches to fix upstream llvm to work in gentoo prefix on macos almost a decade ago [1]
I finally met someone at the GSoC reunion that wanted to get me maintainer status, but I never got them to follow through. He had already warned me that it would be a complicated task to accomplish. I kept mentioning prefix needing binaries as well. Imagine if gentoo prefix had been as easy to install packages as homebrew on a mac.
It's sad, but gentoo is a good example of why an open source project that is technically superior, cannot survive inferior solutions without good stewardship if they disregard some basic end user quality of life features. I would argue that that is also what killed opensolaris/illumos(which is basically on life support), because the people in charge could never get past their elitism and decide that for community engagement the kernel build needs something more simple that 100 layers of nested incomprehensible makefile/shell spaghetti.
Is it too late? Gentoo has always been a niche within the already niche Linux community, but they seem to keep chugging along happily. Are they having some problems?
They have had the binary packaging capability for a long time now. It just didn't make sense to use it on a global scale considering the vast combination of packages they could generate (due to USE flags, profiles, etc) and the infrastructure needed to distribute them. They seem to have decided to offer binaries for the most common configurations. This isn't a major change. Perhaps the infrastructure also makes more sense than before.
Probably orders of magnitude less than the amount of wasted energy and greenhouse gases emissions of needlessly compiling the same javascript software over and over again on the billions of devices used to access the web.
Not to talk about all the batteries we burn out from it or the billions of devices that is replaced solely because we run so utterly inefficient software.
Probably not that much. It's not like gentoo was widely used compared to Red Hat or Ubuntu. Also CPU power usage is a rounding error if the computer was on anyways compared to the spinning HDD, monitor etc.
As far as hobbies go, it's very far from the worst. Some people play games for 12 hours a day on kilowatt gamer PCs, or race their car around a track, or cruise around on a gas guzzling boat, etc.
Do you think that many people were even using it and compiling regularly? I left it around 2010 for linux mint. Just last summer I tried it again just out of curiosity, and couldn't even get it installed. They had a broken release and of course there was some hack to re-update everything back to the last stable version, which gave me flashbacks of what Gentoo Life was all about and I stopped then and there.
probably less watts than the full screen videos and rendered play worlds that are drawn behind the main menu on any given AAA console game bought by millions of people.
given the behavior one can only think that software people generally don't care unless it bothers a user metric like 'battery life'.
I heat my home. The difference between heating via compiling my kernel and heating via whatever heating you use is almost certainly negligible. But I get a custom built system out of it too.
The appeal of Gentoo is not compiling everything from source, it's having the freedom to install anything you want on nearly any hardware all with stellar documentation and minimal roadblocks. Want to run Enlightenment with OpenRC and NetworkManager on a laptop from 2008? Install Gentoo! Want ZFS as root on a smart refrigerator? Install Gentoo! Want a vanilla Gnome + SystemD install on a brand new laptop? Install Gentoo! The decision to ship binary packages only gives users *more* choices while other distributions have been actively removing one's freedom to choose. Debian, the so-called "universal operating system" just dropped 32-bit x86 support. You can install an alternative init system on Debian if you'd like, but it's a bit of a PITA. Meanwhile Gentoo allows you to pick between 17+ different stage 3 tarballs and 35 eselect profiles. Personally, I enjoy compiling everything from source and the flexibility that comes with it. On modern hardware it's painless. If you disagree, great! Go install a shiny new binary. The selling point of Gentoo has never been portage. It's always been the flexibility and the community.
This is imprecise at best. There was a meeting where the release team concluded that most likely, there will be no _installer_ and _kernel_ support for 32-bit x86 at some unspecified point in the future. (At the current point in time, both are still delivered and fully supported.) In particular, you can still run multi-arch 32-bit/64-bit, allowing you to run 32-bit x86 software.
Which might mean people who want to run old proprietary 32-bit games/software are going to be annoyed, but that's not necessarily the distro/OS's problem; it could be argued that the user should install a 32-bit translation/emulation layer to run that stuff, ala DOSBox.
I think that's a bit unfair. Everyone wants to support everything, but at the end of the day if you want to guarantee security and maintenance and do the job of a distribution you have limited resources on what you can look after. Something always has to give.
On any Linux distribution anyone can install what they want, but what you can genuinely claim to support is always limited by the amount of maintainers you have.
I would argue that Debian has support for at least as many architectures as Gentoo:
> https://buildd.debian.org/status/package.php?p=base-files&su...
I know that because I am maintaining most of the obscure architectures in Debian with regular installation snapshots:
> https://cdimage.debian.org/cdimage/ports/snapshots/
Debian even has a Hurd port for both i386 and amd64.
I tried Arch and what astounded me the most is that the docs didn't seem as good as Gentoo's. That surprised me because I end up looking at Arch's docs all the time and it's all of a very high quality.
But the Gentoo Handbook is really a masterpiece. I've never read a clearer explanation of how to go from unformatted disks to a working system.
I then moved to debian/ubuntu and recently switched my main server to Arch. And you are right - I got back this feeling of having all my 10 fingers in the system and living on the bleeding edge.
Now: this was probably not the brightest choice, as this server rund my docker containers and basically nothing more so it should have been Debian(a fire-and-forget OS)
I'm going to install Solus OS / Solus Linux soon, had a good first impression with it's package manager, which claims to be reproducible but not like nix or guix are.
If you do systemd (which is what I'm using), then you might look at systemd.boot for UEFI. That's currently what I'm using.
I ask, because one issue I ran into was messing up the kernel config. Pulling the livecd config in and using that as the base config worked for me.
Is this referring only to ports (Portage) or does this mean enjoy compiling kernel and userland.
This development will make Gentoo more accessible for a lot of people. But I guess this isn't for me. My build configuration (like CFLAGS) are never going to match the official binaries and so they will never get used.
That being said we've always had a build host dedicated to producing binaries, but the actual support for binaries in Gentoo hasn't been great. Unsigned serving over HTTP or NFS of compiled artifacts is about all you get. I'm really pumped to see that the new package format adds in cryptographic verification that really should have been there all along even for internal only serving.
That's one of the most compelling cases I've heard for running something like Gentoo in prod.
There are so many plugins, connectors, protocols, and often the old neglected ones turn into attack vectors.
I have used Gentoo in this way on many small computers with various kinds of Atom CPUs and with a small DRAM memory and small and slow SSD/HDD.
With multiple computers of a compatible kind, the files from such a chrooted installation compiled on a powerful computer can be copied over all of them and everything will work fine. If the chrooted installation is preserved, it can be updated later with other software packages and all the changes can be propagated with rsync on all other computers.
Linux is not like Windows, which will complain when run on a different computer than that on which it was installed initially.
But to be honest, I haven't looked at binrepos so far. Perhaps your reply is a good reason to.
You should check out what ChromeOS is doing. They are using bazel to execute ebuilds inside an ephemeral chroot: https://chromium.googlesource.com/chromiumos/bazel/+/refs/he...
This way it's guaranteed that no undeclared dependencies get used.
Thanks for suggestion though. I'll take a look at it.
[1] https://crates.io/crates/genpac
[2] https://wiki.gentoo.org/wiki/Chroot_for_package_testing
[1] https://git.sr.ht/~gokuldas/genpac
[2] https://crates.io/crates/genpac
I finally realized all the tweaking and optimization and bleeding-edge software wasn't worth it once I discovered my Slackware boxes ran as fast as the Gentoo ones. Maybe there's a few very specific applications out there that benefit from all the tweaking and custom compiles; perhaps a render farm or crypto miner? But my games got the same FPS on either distro.
Then AMD Opteron came out and got everyone on a new baseline: if you compiled for amd64 then that meant a specific CPU again, there were no newer instructions yet. Now AMD64 has several levels[1] which can start to matter for certain kinds of operations, such as SIMD. A more mundane one I often run into is that v2 added popcnt which is great for things like bitsets in isolation, but in overall program performance I measure almost no difference on any of my projects between v1 and v3.
When it comes to games, it's more than likely your games were binary-only and already compiled for the lowest common denominator and maybe used runtime feature selection, and even then, they were probably GPU-bound anyway.
[1] https://en.wikipedia.org/wiki/X86-64#Microarchitecture_level...
All of us who at one point compiled our own kernels and now no longer do, are the killers that we are partly because we did things like that at least for a bit. It only makes sense not to now, after having done it.
It's not true to suggest (or to read these stories as a new bystander and come away with the idea that) "if I were smarter I never would have wasted time on that"
However, I think that the statement below might be better with a bit of nuance.
> It's not true to suggest (or to read these stories as a new bystander and come away with the idea that) "if I were smarter I never would have wasted time on that"
I would say its "not true always," in some cases doing the action really wasn't worth the time.
Related to this, I believe the sentiment people have about regretting wasting time on some endevour, is a misalignment of what their intention was to begin with.
For example, if someone wanted to compile their own kernal because they wanted to learn and understand more about their computer its unlikely that they would walk away from that experience with regret. However if they wanted to compile their own kernal because they believed that in doing so they would make 10x more money in the long run (through learning so much), and that goal failed to materialize. They would likely tell others to not waste their time learning to compile their own kernal.
Not trying to be pedantic, or argumentative, I aggree with your point deeply, however I wanted to discuss it a bit further. Let me know your thoughts.
If you can, try to get access to OpenVMS or Cisco IOS, it's an entirely different world in terms of user experience.
At best, we are at least a bit confused about it all.
The flags were just icing on that cake.
The only cool thing about it is that it’s declarative: nix-darwin everything and a fully working and customized machine is up in 10 minutes with one command
Dead Comment
Nowadays most people are swimming in CPU cores and gigabytes of ram and terabytes of solid-state memory, so fine-tuning is a waste of time (unless you play bleeding-edge games). But it wasn't always such.
Unless you run javascript 'applications'. Games are already optimized.
For a single machine home install, the biggest value Gentoo has to offer is the learning experience. I ran it for about a year like 4 years ago, and I definitely learned a lot in that time. Hopped around a bit and I've since landed on GNU Guix, and I'm probably set for life now in the GNU world.
I used to believe that and was a huge Gentoo user for years back when it was initially released. Then one day I benchmarked Gentoo and a default RedHat install on every work load I cared about, and everything was within the margin of error.
A full day compiling stuff only for the base install, let alone everything else I would eventually need.
On my case, I decided to become another Scientific Linux tester.
But computing power is much higher now. The same compilation now would probably take 1-2 hours, max. Updates would be super fast.
Gentoo itself is considered generally stable and a pretty solid distribution, or it used to be.
I wonder if these days the flexibility and the engineering behind Gentoo might be worth taking another go at it.
I've installed Gentoo literally two times. Once per PC. Been using it for years. It's not like you have to keep tweaking it. It does help if you run a basic system like me, though (no DE, simple tiling WM, don't use much apart from Emacs and Firefox).
But yea, now-a-days I'm on Ubuntu LTS.
What was interesting about the USE flags was learning that a given package even HAD a particular integration with some other library / package. Realizing that the SQLite3 binary doesn't work the same when you don't have readline support linked to it lead me to understand what readline was as a whole. That happened over and over again for a lot of the "invisible" libraries that are always included on every other Linux system.
Absolutely invaluable learning tool at the right time in my life for sure.
A lot of the comments are saying that they tried Gentoo or used to use it.
And here I am, using it as my daily driver and server workhorse.
I wonder what makes me different such that Gentoo is the best for me.
And I am not going to enable binary packages.
1. Best documentation I have ever used.
2. Infinite amount of customization. Your system can be as minimalist or maximalist as you’d like.
3. Portage overlays > AUR any day of the week.
4. Choose your own init system. Want SystemD? Fine. Want OpenRC? Go right ahead!
5. It’s hard to understate the power of a good community with well-described values. I feel safe and at home with Gentoo because I know that it will always value the #1 thing I care about on Linux: freedom. Gentoo is like a choose your own adventure. Want to run SystemD + Gnome + PulseAudio + binary packages? You can do that. Want to run OpenRC + Hyprland + Pipewire + NetworkManager instead of netifrc? Go for it!
Gentoo isn’t about compiling everything, it’s about choosing everything. Today’s announcement (although irrelevant to me) gives users more choices.
Ok, I'll bite: why is Gentoo best for you? (I'm not going to try to refute any of your statements should you reply, I promise. I'm genuinely curious.)
I'll offer my own experience why Gentoo is not for me: I don't run my own server, and at work I use servers in the cloud (Ubuntu based, I guess? Or AWS-flavored). No compiling any kernels or whatnot.
For the desktop, a friend convinced me to try Gentoo 10+ years ago ("it's compiled for your specific hardware, it'll be faster!"), I gave it a try, wasted lots of time getting it running, then saw it wasn't really noticeably faster for any task I did than regular Ubuntu, and took longer to get set up. So I ditched it.
Another common claim I found to be false (in my case): "I learned so much configuring Gentoo!". Well, no. I mostly followed the recipes like almost everybody else, setting flags and touching config files I didn't really understand, so I can safely say I learned nothing -- I just went through the motions.
But that's just my experience.
I can understand that you didn't learn anything from installing Gentoo. I did, but in my case, I was not like most new Linux users; instead of immediately trying to learn the details when I started, I just wanted to install Ubuntu and get working.
It was only six years later that I installed Arch, then Linux from Scratch, then Gentoo, and in the process, I had many lightbulbs trigger. "Oh, that's why it's like that!"
As much as I love Gentoo, I agree with you: the "faster" argument is a myth.
I hope you can tell I'm not trying to evangelize. :) You said you weren't going to refute that Gentoo is best for me; well, I'll go the other way and not refute that Gentoo is really bad for nearly everybody!
Anyway, I'll take a stab at why Gentoo is best for me: extreme customization. See, there's another way I'm not like most people; others start out with extreme customization and ricing, and they back off of it over time. I started with little and have only grown my customization over time.
Maybe it's because I'm on the spectrum, but computers are annoying to use for me by default. On Gentoo, however, I can make my setup fit me more than any other distro.
Another thing that might contribute is that I like lean setups. Just checked with `ps --ppid 2 -p 2 --deselect | wc -l`, and subtracting the terminal, shell, ps, and wc, there were only 30 processes. And that includes niceties like redshift and picom.
Because I do heavy fuzzing, that matters to me. Also, it is responsive; slow responses bother me more than they do others.
But to be clear, that doesn't refute your experience that Gentoo isn't faster; it took a lot of work to get Gentoo to this point, and it isn't default.
So I am weird.
> Another common claim I found to be false (in my case): "I learned so much configuring Gentoo!"
This isn't true for everyone. My general plan with anything is to follow the script exactly at the beginning. If that works out, start making incremental changes until something breaks or until you're satisfied. Gentoo taught me a lot of things that way - especially the kernel compilation (which is important to me anyway, due to my profession). Before this, it was Arch. And a regular Linux distro before that. All of them taught me something with the same strategy during the initial phase. Eventually the struggle gives way to familiarity and learning rate starts to fade.
> Well, no. I mostly followed the recipes like almost everybody else, setting flags and touching config files I didn't really understand
I don't know about anyone else, but Gentoo config files were the easiest for me to understand. I feel very much in control with them. The Gentoo wiki doesn't just give you recipes - they always tell you the exact reason for a configuration or flag (This is true for Arch as well). I have also created packages for myself - so I have a reasonable understanding of USE flags. I've been thinking about migrating away from Gentoo - but I like USE flags so much. Sometimes they allow you to access application features that are not available on other distros (because they have to choose build flags that suit the majority).
Something that helps me with this level of control over the configuration is that I maintain them as literate org-mode files with explanations and even diagrams at times. This might seem like too much work for a desktop system. And often that is true. But this workflow suits my interests and profession really well. In fact, at least 3 custom programs are part of my desktop - configuring Gentoo to my liking is the least difficult part in it.
> Ok, I'll bite: why is Gentoo best for you?
Finally. I said this in another comment. The most attractive part of Gentoo for me isn't the custom compiled kernel or software (I use flatpaks for most desktop apps). It's the package management system. Portage is by far the best system I've experienced for creating system packages.
It has zero opinions about how my system should be configured or what options the installed software should have. It lets me build precisely what I want to build without any hassle or compromise.
> I mostly followed the recipes like almost everybody else
The thing I really like about gentoo is I have a virtual/akira package. It brings up any system precisely the way I want it. If I have a new system I can just install that virtual from my overlay repo and be in business within a few minutes.
I wrote this virtual 10 years ago. It still works perfectly. Ironically, I guess I could say, I choose gentoo because I want to spend _less_ time managing my system, and it enables that in a way that no other distribution has for me ever.
It's a rolling release so it never has a "major blow up day" - at worst I have to spend 5-10 minutes on a "breaking" change.
My desktop is just a Mac, but my Gentoo server provides the Linux I need.
(Work servers are Ubuntu because work software wants something well-known.)
Persistence like a Saint? Hard to say. I've been using it for 20 years too.
I stopped using Gentoo when I got my made my first "production" system: I made it, people started using it, and it was "done" - as in, there were no more any reasons to log into it daily, or even weekly. I'd still want my security updates and very very rarely there would be a new feature that required new package, but otherwise I wanted system to be steady. And Gentoo is a horrible fit for this usecase - even on my personal desktop where I updated weekly I had emerge build failures practically every time; and a system which might not be updated for months would be even worse. So I went to Debian, and it was good (especially with unattended upgrades), and I eventually switched all my machines to it.
If you use Gentoo, do you have any machines that you don't tinker with weekly? How often do you update them, and how often do you need manual intervention to finish the update?
Leaving a Gentoo system is, as you say, not something you should do. I'm lucky that I don't have that.
https://blog.nawaz.org/posts/2023/May/20-years-of-gentoo/
Anyway, the best OS is the one you already know how to use.
One of the reasons I moved from Gentoo 15+ years ago to FreeBSD was that it was mandatory to compile everything while FreeBSD provided binary packages.
It may be not that important today - but it was a game changer with single CPU core and 1GB RAM.
I finally met someone at the GSoC reunion that wanted to get me maintainer status, but I never got them to follow through. He had already warned me that it would be a complicated task to accomplish. I kept mentioning prefix needing binaries as well. Imagine if gentoo prefix had been as easy to install packages as homebrew on a mac.
It's sad, but gentoo is a good example of why an open source project that is technically superior, cannot survive inferior solutions without good stewardship if they disregard some basic end user quality of life features. I would argue that that is also what killed opensolaris/illumos(which is basically on life support), because the people in charge could never get past their elitism and decide that for community engagement the kernel build needs something more simple that 100 layers of nested incomprehensible makefile/shell spaghetti.
[1] https://github.com/fishman/timebomb-gentoo-osx-overlay/tree/...
https://wiki.gentoo.org/wiki/ChromeOS
Dead Comment
given the behavior one can only think that software people generally don't care unless it bothers a user metric like 'battery life'.
(microsoft's anti-virus)
I don't cool my home, though.