At the time I first encountered Gentoo (about as many years ago, I still remember RedHat pulling in X because I wanted mpg123 to play music from the command line) it was the most customizable package-supported distro available.
From what I understand, there are more now that support that level of customizability, such as Arch.
What I really love about Gentoo, and why I still use it, is that it just happily upgrades without forcing things on me almost all the time. Sometimes I have to eselect news read and make a decision about something that's going out of support, but that's very uncommon. It's a rolling release that doesn't suddenly tell me I'm using systemd or insist that now I have to use nginx or whatever.
And since it's from source, all the compiler toolchain bits are already installed.
And I can funroll my loops and fomit my pointers.
Everyone should install Gentoo at least once. It's not hard, the documentation is excellent (up there with Arch) and you learn things. You may not want to, but you do.
Oh, and that color documentation? That made such a huge difference! Everything else was HOWTOs and black and white and here was well-written documentation with colors to help you understand the fixed and movable parts of the commands; chef's kiss.
Ooooo sys-kernel/gentoo-sources-6.1.28 just dropped, time to go! I'm coooooooompiling!
Also genkernel is one of the nicest interfaces to rolling your own kernel you're ever going to encounter. It's a joy to work with.
Arch is not bad but last I looked it didn't have what Portage calls "slotting" ie the ability to have multiple versions of the same package installed side-by-side. It's especially helpful when eg. you are upgrading postgres and need multiple versions operational for the cross-version dump/restore.
Arch has a package [0] called postgresql-old-upgrade that tracks the second-last postgres version specifically for upgrading.
It's described in their Wiki [1]
If you need older versions, they're available via AUR, called postgres-*-upgrade [2]
As a Gentoo and Arch user, SLOTs are really overstated as a feature; a near-identical result can be produced by using multiple package names, possibly combined with a "provides" type feature. As a concrete example, Gentoo has fuse:2 and fuse:3 whereas Arch has fuse2 and fuse3. Searching for sys-fs/fuse:* in (what used to be called) gentoo-x86 yields only lxd, so the SLOT is providing little value here.
Categories are a similar issue in Portage: emerge graphviz asks if I want dev-python/graphviz or media-gfx/graphviz, but obviously the default should be the latter. Arch instead has python-graphviz and graphviz, which is much better design. Categories fix naming collisions in exactly the wrong way: dumping it on the user and giving no sensible default.
For PostgreSQL specifically, Arch provides postgresql and postgresql-old-upgrade, so as long as you don't wait years to upgrade your PostgreSQL, you'll be fine. It's a reduction in flexibility but brings with it a significant reduction in complexity: nobody can properly maintain half a dozen Postgres versions anyways, so just keep the latest two around.
I'll agree that slots are useful... for whatever reason on arm, uboot and ATF won't compile with the latest binutils and gcc. Slotting lets me switch back to the older stuff to build new firmware, while keeping the rest of the system current.
There is no built-in support that I know of. The official repos usually only contain the latest version of each package (Postgres being an exception).
However, every time I've needed older library versions I've found that somebody already uploaded a suitable PKGBUILD to AUR (Arch's user-contributed build-from-source system).
For instance, the current version of PHP in Arch is 8.2.6. If you need an older version there is php81, php80, php74, etc. available in AUR. If it didn't exist, just take the PKGBUILD for the current version, modify it to build the older version, then upload it to AUR so other people don't have to re-do the work. It works well in practice.
Never used Arch, but I'd be surprised if Arch doesn't support it. How any modern distribution can survive without some semblance of slotting befuddles me.
I'm just an Arch user and not an expert but AFAIK it's not officially supported (by Arch's packaging system). One is encouraged to update the entire system before installing anything new. If you installed just MyCoolCalculator vLatest and it pulled in the update for ImportantWidelyUsedDependencyX, dependent apps could potentially/do break, because multiple versions of that dependency are not kept. At least AFAICT.
The AUR is said to provide options for non-latest software, and I guess you have options like Flatpak too.
Does Gentoo's slotting support cross-compiling? I was following a guide on it and was pleasantly surprised how advanced the cross-compiling support was in Gentoo.
As someone who ran Gentoo on several boxes, including my main desktop PC, for about 15 years, and still keeps one last server on Gentoo partly because of nostalgia, the upgrading is fine only if you update everything regularly and frequently (every few days), in order not to fall too far behind.
Otherwise you get bit by dependency conflicts in your @world updates which portage cannot solve with huge list of package updates (even with "stable" branch or arch keyword) the error output is loooong and useless, and it is detective work to figure out what exactly is the problem.
In the last few years, I also had several problems with python completely breaking, leaving me without a working package manager (portage is written in python). This was always during python version upgrades (e.g. 3.10 to 3.11), which the docs docs would have you believe is as simple as changing a variable in portage configfile.
I was always able to monkeypatch portage to get it working, but it is a problem.
I like Gentoo a lot, but I think I liked it more ~ten years ago, when I had more time. If I had to reinstall my remaining Gentoo box from scratch, I'd probably use something like Debian, since it is boring and reliable.
RHEL uses a separate copy of python (called platform-python) for its most critical components, like the dnf package manager. I wonder why Gentoo doesn't do the same. Of course, it's pure bloat, but only until you're left
Python can be fast — dnf is pretty fine, and although it has no relation to package managers, my most favorite example is the kitty terminal emulator. Most of it is written in Python, but you don't feel that at all. It feels like pure C. I refused to even try it for a long time, but have been hooked for several years now.
>From what I understand, there are more now that support that level of customizability, such as Arch.
Kind of (having previously used gentoo but now using arch). Gentoo has the philosophy of 'here, you can build this package exactly how you like, and then configure it'. Arch is more like 'here's the package built as close to how the developers intended, and here's how to configure it'. You can build stuff yourself on arch but it doesn't encourage it, and a lot of decisions are made explicitly because they makes maintainers lives easier, not provides features to users.
The feature I really like about Gentoo is I can entirely “turn off X” and never have to worry about any GUI stuff being pulled in or compiled on my servers.
Honestly it's the sleekest OS I've ever worked with, it has exactly what I want and nothing I don't. Sure if I forget to upgrade for a while it's a headache sometimes but I've learned such an insane amount about Linux it's a clearly winning tradeoff. That's on top of being absurdly lightweight, fast booting, and super customizable.
Gentoo ended my distro-hopping phase back in high-school/college student days (17-18 years ago). Top class documentation (the title moved to Arch in the meantime) and helpful, supportive and knowledgeable users of their community taught me so much about Linux. Additionally, although I'm not educated nor working in CS field, Gentoo got me curious about programming languages, build systems and compilers (as a hobbyist). I used it happily and exclusively for 6-7 years (then moved to Windows at work and Mac at home).
From summer of 2020 I restarted with Gentoo on my new home desktop.
I've been using Gentoo for years on my home desktop. Nothing has ever broken. Things are so much easier now than they used to be 10 years ago. I do run a very minimal system, though. I use sway as my window manager and no desktop environment. My hardware is pretty basic (mostly Intel).
I run Ubuntu on my work laptop (with i3 WM). Despite my desktop having a very measly dual-core Intel Pentium G3258 (a 10 year old budget CPU, although admittedly overclocked to the max) and my laptop having a much more recent quad-core i7, the Gentoo box absolutely flies compared to the Ubuntu one.
I've also successfully run Gentoo on an old Atom powered netbook. The only problem is it's too slow to run Firefox and the "modern web", but that can't be helped. I compiled the whole system on the netbook, although nowadays I would set up cross-compilation if I were to do it again.
I am running “full-blown” desktop with relatively minimal Plasma (I installed only the KDE software I actually need). The initial setup was quite straight-forward, without any tweaking or particular issues. I do use binary packages (available in Portage) for the stuff I do not care - like LibreOffice or Rust compiler.
Upgrades where you are expected to do something rarely happen and even then it is fairly simple.
The major downside is when you want to try out something - it takes time usually, so it is not instant as with binary distros and other OSes. For now, when I am not willing to wait, I just use Fedora VM to test stuff first.
Kde, wayland and pipewire are alright... I'm not sure what desktop apps you use, but I don't run into many cases where something isn't in portage... My personal overlay only has 3 packages in it.
Gentoo has a special place in my heart as one of the earliest distros I used and one that I ended up using for many years. Days were spent compiling packages. I'm still fond of the documentation, package system, and init system, among other things, though I have switched to distros that require less effort.
It was also the distro I used when I first started contributing to an OSS project. And it was the reason why that project eventually added filters to limit what CXXFLAGS were used, since we got tired of having to debug weird bugs caused by crazy combinations of GCC flags:
Haha, I remember looking for the most aggressive optimization settings, not understanding them and then finding my system was stable for all of 20mins after boot. It was a lot of fun when I was young and had lots of time to pour into that sort of thing.
I personally found Gentoo a good way to learn Linux, but terrible to use in a professional field.
At my first workplace they are using Gentoo and it was very unpleasant: hours to compile and install a Python library in the production servers, dependencies problems, the deployment process was so out of control that they hired one guy just to care about releases and software packaging.
Maybe this company don't know how to work correctly with it, but this was not a good experience at all from a developer point of view.
I deployed Gentoo professionally for a few years in two roles, a locked-down desktop and a small server for small retail stores.
What I did was to create a golden image, tar it up as a stage4.tar.xz, have a script unpack it into a new LVM volume and boot into the new volume.
Application data lived on separate LVM volumes.
Worked great for the time. I have switched to RockyLinux + Autoinstaller + Ansible since then.
The company where I worked was making webservice (VAS and mobile service) and it needs a dynamic environment.
For your use case, gentoo can be a good solution.
Nothing, but it's just add a complex layer to something that every developer can do by himself with a bit of conventions. The company was developing software mainly in Python, so writing a virtualenv (no docker at that time) and a script to deploy it was the simpler way to deploy it.
No need to overcomplicate things and waste resources.
I am so glad I installed Gentoo on a headless box 15 years ago to use as a server (no GUI.) I learned so much about Linux by following the Gentoo handbook and being forced to use SSH and the console for everything, and I absolutely believe it (along with my highly curious personality) is what shaped me for a successful career in tech.
And for what it's worth, I'm still using OpenRC on it and not systemd, a completely free choice that users have with a Gentoo system.
It's such a breath of fresh air to use Portage and Gentoo utilities compared to other stuff. It's designed so well, has beautiful colours, and the terminal output is clean of random warnings or errors that you constantly see with other distros (e.g. when booting or upgrading packages.) All the terminal output from Gentoo tools is super meaningful and formatted consistently.
I do think I have better familiarity with Linux as a result of all those years of using Gentoo.
Nowadays I'm (mostly) happily using Ubuntu. Every once in a while on my Ubuntu machines and on various Red Hat-derived servers I notice a massive dependency tree getting pulled in and pine for a USE flag, but it passes.
I once made the mistake to compile .. ahem .. attempt to compile KDE on an EEE pc (remember those toys from ASUS?). Three days later the damn thing stopped working. I think it fried the CPU or something. Never again.
I have nothing against gentoo but the least that can be said is that his rant against slackware is not a good representation of the reality and uncalled for.
There have always been video players and office suites in Slackware. I even remember having proprietary stuff like real video player and flash running on slackware in the early 2000's. What most non slackware users, or those that strive for small distros do not understand though, is that to get the most of it you usually do a full installation where everything is included. So it is not a frugal install in term of disk space but it is not huge either. Once you have that, you don't really struggle with the lack of dependencies as you rarely have to install a third party app but slackbuilds help you with that when you need it. Having said that with modern software installation methods like flatpak, appimages, nix-env and containers, I don't think a 2023 slackware user would be limited in application availability and ease of installation/management.
His experience of system breakage is something that you wouldn't expect from a same vintage slackware installation.
I've personnally used gentoo for a time, but I got tired quickly of long build times and keeping my computer on all evenings/nights just to do updates. When I am not in front of my computer, I want it shut off and not wasting power. I love that it still exist and give choice to users, especially in term of init system. I also believe that nowadays you can use gentoo with precompiled packages right?
>I have nothing against gentoo but the least that can be said is that his rant against slackware is not a good representation of the reality and uncalled for.
I could not get into the article, if this is true, I agree with this. But I do remember lots of Gentoo people spamming the aols (USENET) and I think other forums about how much better gentoo is.
I ignored them and I hope the project leaders do not feel the same about Slackware.
I used Gentoo for over a year, from at least early April 2020 until my migration to GNU Guix in early December 2022. Got into DWM, LTO, minimal systems. It taught me more than any other distro, and there's still a lot I miss about Portage and the Gentoo community. Still use `functions.sh` to style my personal Bash scripts. Functional package managers have not nurtured the same culture around diverse USE flag support and quality packages + docs, and I wish I could just glue them together. Some day.
Prikler's suggested syntax feels apt, as sugar for (I imagine) a set of native Guile parameters around the remaining fields of the package definition. Infrastructure will need created to implement inheritance, possibly at the level of fluids, in a manner that complies with the Guix maintainers preferences.
Thinking about how I tended to manage my USE flags (ie. through `package.use` as a directory), I think that the balance of package-level impact and operating-system-level syntax (how will services be affected?) will be interesting to see developed
Wow, can relate so much to this. I myself am about 18 years in my Gentoo journey. Can relate all to well to the eventual impossibility of an upgrade, especially after years of inattention and auto-pilot. Sometimes its suggestions of updating portage now is the worst thing you can actually do :). Was essentially locked out of a dev system for two years and couldn't be bothered with rescue until some years to salvage the system and migrate to a new server, albeit latest and greatest Gentoo. This has happened a couple other times over the years, whose details are similar but different in their own ways.
Recently tried Funtoo for a while on AWS, but never felt right, as I could never get used to ego sync. Happy AWS now has community Gentoo packages.
Use other distros all the time, Amazon's Linux, Ubuntu/Debian, etc. as I've become too lazy to configure most things when they're running in isolation, such as Dockers or SNAPs. Don't need to be opinionated, just enjoy that bloat and forget it.
However, there's something very satisfying to Gentoo. The USE, and similar flags. Being able to set just what you need, nice slots, easy upgrades (usually, especially if you remember to add your USE to the respective package files vs inline). Can get everything as I like, where I need, and can really use a server fully. Don't think I'll ever give up my personal Gentoos on Linode, despite having various clouds and distros elsewhere. Something about it just feels like home.
Downloads of most OSS software is so heavily skewed by CI pipelines, but I'm not sure what shape that follows. Maybe it's an exponential curve where the more popular you are the more CI systems you're in so the exponentially more downloads you have. Maybe that's useful but I'm not sure.
It would heavily favor distros that require major upgrades every six months or whatever over rolling release distros.
With Gentoo, the ISO doesn't matter. You can use any bootable linux distro. I generally used knoppix back in the day, these days I generally use systemrescuecd. I installed Gentoo using the Ubuntu installation disk once because it was the first bootable linux disk I saw. I've used Gentoo as my primary OS for almost two decades and I've only ever downloaded an ISO maybe 5 times.
Joined 18 years ago. Still compiling my KDE (but should finish soon). Then will take care of Firefox. My year of the linux desktop will be 2025. Great times ahead!
I still have nightmares about building OpenOffice.
And yeah, oh boy, KDE. The only half-decent (actually worked, didn't glitch out or crash constantly, didn't assume you had memorized all the switches for the equivalent command-line tools, actually had all the features that anyone who used such programs would have called MVP-tier) GUI CD burning program on Linux in the early to mid '00s was a KDE program, (K3B, I think it was called?) and it'd drag in half of KDE if you installed it, so, would take hours to compile. Ugh. Here I am just wanting to mostly use Windowmaker and some GTK programs, and I've gotta compile kde-libs because I burn music CDs or isos sometimes.
Yeah, it probably wasn't until later when they broke up KDE into more modular packages, and that mess went away. Personally, though, although it took a long time to compile, KDE worked just fine on my machine.
OpenOffice? I think I did it a few times before switching to the binary package.
Just kidding of course. Gentoo people, you taught me so much about Linux, Operating Systems in general and made me start reading docs in their primary language to get the newest information (I’m German). You taught me so much, I’ll always keep fond memories about Gentoo though I moved on.
I recall many years ago being a big Gentoo fan (around the time Ubuntu first launched). I fell out of love with it for one of the same reasons that the author said: upgrading dependencies breaking things that you usually never heard of.
The community support was hit and miss. Sometimes they'd be great, even when you were a bit salty. Sometimes, however, they were pretty hostile. The straw that broke the camel's back was being told it was my fault for upgrading packages without deep knowledge of the full implications of doing so.
As a Slackware user back in the day, I remember we used to poke fun at Gentoo "ricers" compiling everything with -O4 and a bunch of other flags in an attempt to make stuff run faster :-) Those were the days...
A room mate showed me Linux and I wanted to try it out. Yellow Dog Linux (A fork from Red Hat) was the stable/best option for PowerPC newbies.
I loved YDL but quickly realized that everything was a year or more out of date and by the end of the year I had distro-hopped my way over to Gentoo where I could get updated versions of GIMP, Inkscape and Firefox.
It took a few semesters but I did finally learn not to do any exciting upgrades the week a project was due.
I used Gentoo for many years, initially for the performance gains (they were very real in 2003/2004), later for the long-term stability and maintainability.
I later switched to Ubuntu, because it was what "everyone" used, and it's easier to use the popular thing. The idea of a Major Upgrade every couple of years still scares me (and it still isn't flawless).
These days I might switch back, given that Ubuntu is slowly sliding into becoming adware.
Writing this from my Gentoo machine. Been using it since 2009 - sans a 4 day 'affair' I had with FreeBSD, only to learn nothing comes even close to Portage in terms of granular control of stuff.
I could not get inside the article, but I remember when Gentoo started. It was a big hit but for me, I really did not want to compile everything.
But one debt I owe that project, is the ability for other distros avoid systemd. They separated (forked) out components from systemd for other distros to use. So a big thanks to gentoo for that.
I do love Gentoo and have had it as my home OS for ages. I like to describe it as "the patient person's Linux".. it definitely provides many learning opportunities and sometimes roadblocks however if you get stuck, the IRC channel is very helpful indeed, got me out of many-a-bind! Sorry to see it's popularity declining.
The mass murderer link sounds strange until you learn about "off the wall." Does that forum even stille exist? I was a profilic poster there before it turned insane.
I created a separate account just to talk on Off the Wall. It became a crazy, harsh place, though it was fun to see the "swings" from left leaning to right leaning and back.
That separate account got banned. I have no idea why - I didn't bother emailing the moderators - I figured I had wasted enough time there already.
I use Gentoo on my web server, and generally do updates at least once a week.
I've probably used Gentoo for ~ 15 years myself, and I do think that the cli-only headless setup probably leads to fewer issues than with a full desktop environment.
The source-based environment does make it a lot easier to get the latest PHP, nginx, or Postgres.
I remember 15yrs ago or so Gentoo was pretty much our only choice modern enough that we could run on our mixed farm of Solaris(SPARC) and HP G5/G6 (x86).
We used those because they were cheap to buy used back then.
The overlay system was also a pretty big bonus. So easy to set up custom overlay and just pull freeradius from git, apply our custom patches and deploy it in the overlay. By deploy I mean archive the source code + some metadata files. Then boot up a machine and configure portage to know about our overlay and then just install the entire suite of apps we needed.
Things have evolved a lot I have to admit. These days you just have artifactory or ECR and just push and pull your custom container images from there and boom .. custom software up and running.
Gentoo was the "gateway drug" that got me moved over from FreeBSD. I loved FreeBSD ports and Portage scratched that itch with a Linux kernel. Eventually the need for less excitement and a little more predictability caused me to move on. I also miss it at times.
I cut my Linux teeth on Gentoo around when Sabayon Linux was released. Ubuntu didn't make me feel like enough of a hacker, so I had to bash my head against configuring grub through xserver until I felt like I got it. I learned a ton, but it likely wasn't the best use of my time.
It's not you Gentoo, it's me. I'm just not good enough.
I've been trying to like Gentoo for over four years, ever since I installed it on my primary laptop. I love the idea of having the fine-tuned control that Gentoo offers, and I love the idea that everything I install is tailored to my specific system.
But despite my best intentions I have not mastered it - in fact I barely feel like I understand it. When I remember to update it a couple times a week everything is pretty smooth. Go much longer than that and all bets are off. If I go on a long vacation I dread coming back to a Gentoo update. I just don't have the discipline to keep up.
Lately portage has been scolding me because some random packages are trying to install different versions of openssl. I've been ignoring it for weeks while I muster the courage to solve it.
And in my experience this kind of problem is super common. Either I'm pulling multiple versions of a package into the same slot, or I'm trying to merge a masked package, or some package is trying to put files in a place it doesn't own, or who knows...
Every time I try to solve one of these issues it's like I'm starting from scratch. I read manpages, online docs, bug trackers. I try various incantations of emerge flags. And eventually I show up the IRC channel with my tail between my legs.
Fortunately, the IRC community is extremely knowledgeable and can usually fix my problem in no time. But I hate having to ask for help, and I never seem to get closer to solving them myself.
The other major issue I have is convenience: it sometimes takes so long to install a new package. I get it - that's what you expect with a source-based distro. But man I did not understand just how much compiling time I'd need. Krita releases a new patch version? There's a couple hours with my laptop fans blasting. My laptop has easily spent 10x or 50x the time compiling Krita vs actually running it! And that's just one random program; god help you if you want Firefox on the same machine.
Anyway, on my next computer I'll probably install Arch.
"But despite my best intentions I have not mastered it - in fact I barely feel like I understand it. When I remember to update it a couple times a week everything is pretty smooth. Go much longer than that and all bets are off. ... I just don't have the discipline to keep up."
You are so close to enlightenment! When you can repair a broken Gentoo box (which is its default state), whilst still providing service, you are a man my son (pronoun assumption - soz!)
I do run Arch on all my personal stuff these days (DebIan n Ubuntu at work and others as required) but Gentoo was my first real love and it taught me to never fear a completely broken Linux box. Provided the broken bit is not screwed hardware then Gentoo can survive nearly anything.
I have a box - a VM running on esxi in my attic that got a bit behind. By bit, I mean 2013ish - I've just checked out /etc/kernels to get an idea. You can use git to make /usr/portage go back in time and then gradually update your box to now. It's not something that I recommend for the impatient but you can do it. The worst bit was dealing with things like Let's Encrypt CA changes and finding old packages. I often had to download them manually and slap them in the right place.
You complain about compilation times but back in the day I had a laptop that I left running on a glass table for over a week (worried about heat) cranking through what would eventually become @world. From memory, it was for the GCC 3 -> 4 upgrade and the advice at the time was compile everything until your eyes bleed and then do it again. Nowadays an ABI change is handled rather better and with better advice.
The Gentoo wiki is a very decent repository of info (I wrote some of it, and probably ought to revisit and update my offerings).
The contrast with other approaches to software is striking when it comes to docs n that. I've recently "solved" an MS Outlook MAPI to Exchange snag that might have been easier to diagnose if I had access to the source or logs that weren't solely designed for people with access to source code.
Do stick with it and do ask for help. You are very close ...
Arch is also rolling update, and has no trivial chance to break when upgrading, I learned this painfully a few years ago. switched to Ubuntu, which is boring but stable.
I owe Gentoo for making me proficient with linux and the command line, and starting my long passion for programming and building dynamic web apps. I remember compiling my custom build for days on my parent's Gateway PC with a pentium 3 and liking Gentoo because I felt like I could make it faster by picking -O3 for everything which you wouldn't get with the mainstream distro's :). I also remember just liking the color scheme and the attention to the CLI experience (funny how little things like that can matter!) I ran my first websites off that little machine. Wouldn't be doing what I'm doing today without Gentoo.
Back in 2005-2006 (I was 14-15), I've been going through a bunch of open source operating systems. I started with Ubuntu, tried Mandrake, Red Hat, SuSE (this was all before Mandriva, Fedora or openSUSE became mainstream), did LFS (Linux From Scratch), and eventually ran stuff like NetBSD and OpenBSD on desktop as well.
Playing around with Gentoo is a distinct memory: downloading the two CD images too two nights on my connection at the time. Compiling everything felt like I knew way more about computing than I did. I felt smart, powerful and in some sense, an outlaw.
It had a profound impact on the fact that I still work with software, many years later.
USE exuberance is not bad - if you do it at the package level. I did it aggressively for many years without problems. I stopped only because it became time consuming.
Before moving on to NixOS, I used to manage every USE flag on the entire system. Every single package install or upgrade would prompt a quick look into any USE flag changes and potential reconfiguration. It was really nice knowing your system with that sort of intimacy and _really_ lowered the amount of effort required to make changes to the system. But... nothing can compete with declarative and reproducible at the whole system level.
Ah, the nostalgia! I can vividly recall the thrill of setting up Gentoo on my trusty Pentium 2 300MHz laptop. Then dist-cc came to the rescue, linking my laptop to my father's server in the basement. Compiling Phoenix (yes, that's what Firefox used to be called) was a lengthy process, spanning roughly 20 hours. Nonetheless, the sense of achievement and the memories created during those marathon compilation sessions were truly fantastic.
Also - the constant fiddling with CXXFLAGS even though my knowledge of C++ was fairly limited.
Not necessarily. I think a lot of the "decline" is because more beginners are switching to Linux and look for easy distros, so Gentoo takes up less of the market share without actually becoming less popular.
I dread every portage sync and upgrade of packages.
When it works, it works. But now you have to deal with Python depreciation every few months.
Every upgrade something might break which potentially has you spending your precious time on pointless maintenance, which could be better spent being productive.
My Gentoo forums account is from 2001. Back then, Gentoo truly was the learning distro. Starting from Stage 1 you learned a lot about Linux. Nowadays that's not the case anymore.
The young, idealistic me believed in Linux as means to freedom and betterment of society.
But what I met on those forums back in 2003 was ignorance and arrogance. Not exclusively of course, but more than in other forums I used to frequent.
The community also became toxic (has recovered) and the management intransparent. CoreOS used Gentoo as their base for their OS.
Double standards, maintainers could be toxic while bug reporters would get banned. I got banned when I told the PHP maintainer to do his job or step down. How dare I.
I wrote that Gentoo needed to be more transparent, Google had sent some money their way but nothing about that was mentioned. Entry for new, young people wasn't easy and still isn't.
They don't care. What they care about is donations and to have something to show for on their resume. But those donations remain intransparent.
Some elder staff are really cool, like Ned.
Well if there wasn't so much stuff on that server that migrating to a new one would be a long and cost endeavor, I'd have dumped Gentoo years ago.
I wouldn't know what to replace it with. CentOS is apparently shunned, Alma or Rocky? Ubuntu with their snaps is out of the question. Arch is not for the server, and it tends to break on a regular basis. Gentoo is just a pain in the ass to maintain. But on the pro side, you can have your own packages easily, well if you care to read the bits and pieces of the ebuild docs cluttered around everywhere.
Former Gentoo user here. The answer for me was NixOS. You still get a ton of control over your system. Packages are even easier to make in many cases. If you want an old version of python you're fine because you can keep the version pinned. Updating my system is done on a git branch so I can revert changes if they break something.
I didn't really want to switch but a combination of factors made it enticing. My SSD died and despite my many attempts at making backups I never had something that was simple enough to get back up and running quickly. There's just far too many things to manage when you're editing a bunch of random files in /etc or your home directory that I couldn't stand to do it again. With NixOS I've already switched machines and it was basically only partitioning that I had to do before I was back into the PC with all my software configured how I like.
Sorry to hear your experience with the community. Complete opposite experience for me - didn't encounter any toxic developers (well, a few well known jerks on the forums who were easy to ignore - someone else would always help me).
The Off topic part of the forums (e.g. "Off the wall") did require a thick skin, but you never needed to venture there and they did warn you about it in the description.
I can see how your attitude on the bug system could be incredibly annoying, but banning you is overkill.
I've been also using gentoo almost exclusively over the last 20 years. But I had to move to fedora and nixos recently, when I noticed that building stuff like chromium takes too long on my laptops. What would have saved the day for me, is if it were possible to pre-build / cross compile the packages on a different machine, and use binary packages on my laptops. But no luck there. NixOS would be quite OKl, but is systemd based.
While USE is the main selling point of gentoo, it would be just great, if there would be an easy to setup build server, that could pre-build the packages for a given set of USE configs, so I could just update in seconds instead od hours.
I remember running gentoo on sparc 5 and 20, late 90's. Took 3-4 days to compile mozilla. Fun times, but I won't be going back to a source based distro. Arch is fun, but sticking with Ubuntu for the cuda and dev tools.
Gentoo definitely was interesting thing. One thing of note is that it spawned couple of other interesting distros too, I'm aware of Exherbo and Funtoo, the latter notable for being developed by the founder of Gentoo.
Great writeup. My fondest memories were of multiple multi-day compiles of KDE 4 on an ancient system (even for that time) back in the mid-2000s. Glad to see that there are people using Gentoo to this day.
I loved what gentoo let me do. I spent hours learning it in the early 2000s. These days nix honestly does the best job of making a customizable distribution.
Gentoo was the second Linux distro I tried, after Slackware, around 2005 or so. I too feel like playing with Gentoo taught me a lot about Linux, computers and how software is built, and set me up for a successful career in tech. I often get a twinkle in my eye thinking back to getting Gentoo up and running, compiling my kernel and booting into Fluxbox for the first time.
I started using Gentoo in 2002 or 2003, can't remember. The compilation was neat, but really you used it because it was the only mainstream distro that had the latest packages all the time and the documentation needed to keep it all working with highly active forums.
Once Arch showed up with the same kind of philosophy but you didn't have to compile it, the writing was on the wall.
Gentoo was the first distro I tried. Wow that learning curve was steep.
Yeah the guide was great, but I had a ring binder with printed documentation for installs. Every time I installed Gentoo I had to get that thing out. It took ages.
I picked up a lot doing that but I wouldn't wish that starting point on anyone. I should have looked at one of the many easier distros.
I followed a similar beginners journey, mandrake and then Gentoo.
Oddly at a very similar period in time (circa 2003/04). I've seen a bunch of posts recently reflecting on Gentoo and people saying they got started around 2003, was there some zeitgeist around the distro at that time?
As you can see on Distrowatch, it was the hype at the time. If you wanted to be source based, and pseudo-minimalist, there weren't many alternatives. Amongst them, Gentoo had the best documentation, and probably the friendliest forums.
I want to give Gentoo another go. I do wish there was an installer though - I don't want to config everything out the gate. Ideally, I'd get my software on with default USE flags, then try recompile with small changes here and there.
I was a user of Gentoo for two years in 2002. After the compiling completed after the initial install, I spent 15 minutes downloading and installing debian.
Unfortunately, for the ordinary user, the best solution still is Ubuntu, esp. if you're doing ML work, most tools assume you're using Ubuntu and have the necessary drivers and libraries.
I would love to switch to OpenSUSE TW (which I think is better than Fedora despite both being RPM based). I just hate the way apt works (think about all the dependencies that remain on the system when uninstalling a program).
I remember finding an unmaintained Gentoo box in a corporate environment at a client's server room. It hadn't been updated for an indeterminate period of time and was running normally. However, it was a security risk so I decided to try to update it.
On Ubuntu? This would be relatively simple (this was circa 2008~2009 or so, with the box being 2 or 3 years old). On Gentoo? Impossible. Everything I tried ended up with random errors, and googling them led to more and more complexity. I just wanted to update stuff related to security, and nothing worked.
I eventually gave up and moved the app to CentOS (IIRC) and got rid of the Gentoo box. I also found RPM more irritating than APT, but much better than Gentoo.
I see a lot of pearl clutching about mainstream distros like Ubuntu and a lot of unguarded praise of distros like Gentoo, Arch or whatever. However, every single time, I remember that incident. Gentoo at home? Sure, if it works for you, do it. In a work environment? Not unless you pledge to maintain it forever.
Next time this happens, switch to git as synchronization method for the gentoo portage tree and checkout a tree that is, say, 3 months ahead of the last update date. Once that update is done, fast forward another 3 months and repeat until recent. It'll take significantly longer to update this way but it'll be relatively painless.
Gentoo's a rolling release, and if it gets too far behind you're better off just "reinstalling" over it and re-emerging all the programs. The source tarballs and builds continually get pruned.
Ubuntu sometimes handles upgrading better as you can find the archived DVDs even for very ancient versions, but things will break.
CentOS doesn't even bother pretending upgrading is a thing.
While I've never let a Gentoo system go for "2 or 3 years", it's not supposed to be left running like that. If you do your weekly/monthly updates like a normal person, it's generally fine.
Could it be made easier? Sure. But why put the effort into allowing such an anti-behavior?
Yeah - in the past if you waited say a year before doing an update you had a serious risk of incompatibilities that Portage couldn't fix (the intermediate "bridge" packages were no longer in the tree, etc).
I would often go several months without an update and occasionally ran into this issue. So I committed to doing an update once a month.
I'd never use Gentoo at work unless it was a very dedicated server with only a few items installed.
I recently gave the Gentoo docker images a go and was relatively impressed. However, I quickly ran into an error where it told me to do something but that something required reading 80 pages of things I didn't have time to read, but I read them anyway. After reading all of that, I still didn't understand what I was supposed to do.
The docker images are really cool though, I was impressed.
From what I understand, there are more now that support that level of customizability, such as Arch.
What I really love about Gentoo, and why I still use it, is that it just happily upgrades without forcing things on me almost all the time. Sometimes I have to eselect news read and make a decision about something that's going out of support, but that's very uncommon. It's a rolling release that doesn't suddenly tell me I'm using systemd or insist that now I have to use nginx or whatever.
And since it's from source, all the compiler toolchain bits are already installed.
And I can funroll my loops and fomit my pointers.
Everyone should install Gentoo at least once. It's not hard, the documentation is excellent (up there with Arch) and you learn things. You may not want to, but you do.
Oh, and that color documentation? That made such a huge difference! Everything else was HOWTOs and black and white and here was well-written documentation with colors to help you understand the fixed and movable parts of the commands; chef's kiss.
Ooooo sys-kernel/gentoo-sources-6.1.28 just dropped, time to go! I'm coooooooompiling!
Also genkernel is one of the nicest interfaces to rolling your own kernel you're ever going to encounter. It's a joy to work with.