20 Years of Gentoo
blog.nawaz.org
blog.nawaz.org
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.
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.
How would that work on arch?
I just assumed something so "basic" would be supported on all major distros.
The AUR is said to provide options for non-latest software, and I guess you have options like Flatpak too.
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.
And of course the bigger things...like python2 vs python, and the multiple openjdk stuff.
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.
If you need older versions, they're available via AUR, called postgres-*-upgrade [2]
[0] https://archlinux.org/packages/?name=postgresql-old-upgrade
[1] https://wiki.archlinux.org/title/PostgreSQL#pg_upgrade
[2] https://aur.archlinux.org/packages/postgresql-12-upgrade
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.
> without a working package manager
From summer of 2020 I restarted with Gentoo on my new home desktop.
Thank you Gentoo for everything.
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.
Totally fine. You should have access to all the major packages, WMs, DEs, etc. Once you've installed everything, it will be like any other distro.
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.
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:
https://www.shlomifish.org/humour/by-others/funroll-loops/Ge...
And yes, I also went through a phase of having tens of options in CFLAGS/CXXFLAGS. Good times.
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.
what's wrong with that?
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.
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.
Ahhh, good times!
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 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.
---
0: https://lists.gnu.org/archive/html/guix-devel/2023-05/msg001...
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
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.
Proof that DistroWatch ranking is the most meaningless metric.
Edit: I download a new image like once a year.
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.
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.
OpenOffice? I think I did it a few times before switching to the binary package.
k3b was awesome - thanks for that memory!
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 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.
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.
As of now, Gentoo is 53rd - below the already dead centos. And Arch is in the 60’s.
Top ten as of this moment:
1 MX Linux 2773
2 EndeavourOS 2326
3 Mint 2078
4 Manjaro 1547
5 Fedora 1204
6 Pop!_OS 1198
7 Ubuntu 1138
8 Debian 1106
9 Lite 746
10 openSUSE 721
Imo only 4-5 make sense on that list.
You can probably gather some basic data from packages like popularity contest but the data is going to be quite limited.
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'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.
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.
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.
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 ...
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.
Thanks to everyone involved.
Indeed, eating the learning curve and looking the toolchain in the eye is important.
Also important:
- not spending excessive time watching gcc output scroll by
- not falling prey to USE exuberance and having the system 'splode
Hence: Arch.
Also - the constant fiddling with CXXFLAGS even though my knowledge of C++ was fairly limited.
Distrowath is a questionable metric. But it doesn't mean that decline isn't correct.
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.
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.
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.
His comment on Gentoo: "Dude, Gentoo. That's for the kind of people who mod their cars."
https://web.archive.org/web/20060803063141/http://funroll-lo...
Once Arch showed up with the same kind of philosophy but you didn't have to compile it, the writing was on the wall.
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.
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?
emerge --update world -avt
that will show you all the default options set before installing, at which point you can just modify the USE for anything you want to add/remove.So what are now the recommended CFLAGS ? /s
Asking for a friend.
-O999 -fomit-frame-pointer -fbreak-floating-point --param=thing-that-does-not-matter=666I 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.
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.
The docker images are really cool though, I was impressed.
Could it be made easier? Sure. But why put the effort into allowing such an anti-behavior?
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.