Hacker News new | past | comments | ask | show | jobs | submit login
Gentoo Linux 2022 Retrospective (gentoo.org)
146 points by jandeboevrie on Feb 11, 2023 | hide | past | favorite | 115 comments



Recovering Gentoo user here. I have lost so many hours to the time sink that is incomplete system package updates on Gentoo. Moved to Nix and never looked back.

On Nix either the install - and occasional build - succeeds and I enter the new environment, or it fails and I don't. In the worst case scenario where the build succeeds but something is funky I can just roll it back.

Now I have all this free time to lose to the time sink that is learning how to package applications in the Nix language.


I finally installed Gentoo last year for the first time. I am pleased to say that Gentoo will be my distro of choice for the foreseeable future.

One of the best aspects of Gentoo is how easy it is to understand its working parts (portage, openrc), and to customize/modify a working system. This is in contrast to, e.g., Debian/Ubuntu, which I used for years, and which bring in a lot more complexity to do the same things.

I'll also admit that while the theory of Nix always seemed to hold promise, I've never actually went through with installing it as a distro on a base system. To me, the premise of Nix---essentially, that it can provide an abstraction of pristine system state transitions---doesn't seem to mesh with the reality of physical computer systems; which is to say, state and mutability are not bugs, but features of your computer.

On source-based/"ports"-style package management: I think the way to approach portage is to put yourself in the role of a sysadmin in charge of maintaining a set of Gentoo installations. So, if you want binary packages, you will need to ensure it is set up right yourself (possibly using portage's own binpkg tools, or some other way). There's a certain DIY/rugged-individualism to this approach; but the design and implementation of Gentoo enable and encourage opening the engine hood.


Long time Gentoo user for similar reasons: flexibility and transparency.

Similar thoughts about Nix too. Messed around with it in limited ways but it's not a good match for how I like to run my systems and I don't find the extra layer of complexity to be a good enough trade-off.

Frankly I am a bit surprised that I am still on Gentoo after all these years (decades), you'd think that something better[1] would come along. But if it's out there I have yet to find it.

[1] ...better for my personal preferences and use cases


> which is to say, state and mutability are not bugs, but features of your computer.

We uniformly agreed that mutating machine code and source code (git) is a bad idea — why should our system’s binaries/configs be any different?


What do you mean by "incomplete system package updates"?

I don't _think_ I've encountered any such thing in the past 10+ years, but my assumption of what you mean might be incorrect.

(Other than rebuilding the three(!) copies of Chromium I have installed on my desktop, I don't remember encountering any notable packaging-related time sinks since the days of that nasty libpng upgrade way back when. IIRC, it was some terrible breaking change after an upgrade to 1.2 or 1.4 or some shit.)


I recently wrote a quip about this on the gentoo forums: https://forums.gentoo.org/viewtopic-t-1161242.html

Basically, portage only ensures package consistency at the start and the end of a portage package transaction (upgrade, install, removal). Anywhere in the middle, if anything fails, or your package upgrades take too damn long and you need to use your system in the meantime, the programs you use can be subtly broken.

This is especially painful when upgrading between ecosystems of packages with modules that are version-bound to eachother. Think for example python upgrade, Qt upgrades and KDE upgrades, that will simply not run until the entire stack has finished upgrading.

This is a problem that many distributions deal with, but the chances of failure in binary distributions are much smaller, and the time taken between the two states wherein your system is "consistent" is significantly shorter.

It'd be nice if portage was able to use a temporary system to build packages in, and only install onto the running system once everything has finished upgrading. Unfortunately, designing machinery for this is complicated, and most veteran gentoo users will suggest you use a chroot or a separate system to build packages for the system you're using.


> ...or your package upgrades take too damn long and you need to use your system in the meantime, the programs you use can be subtly broken.

As you mention, this is true of every major Linux distro out there. In fact, in the nearly twenty years (ugh) that I've been using Gentoo, the only upgrade troubles I've run into are

* Temporary KDE screen locker problems (that is, the screen locker thinking it's "broken" and instructing me on how to manually unlock the session. (It didn't used to do this, and it was better when it didn't, because it would actually work.))

* Other KDE issues that are always solvable by some combination of restarting 'plasmashell' or 'kded'. (I'm super glad that both of those programs have a '--replace' flag. (And I haven't seen these particular problems in a very long time.))

* Firefox noticing that it got upgraded and refusing to let me work with anything that kicks off a new process

> ...most veteran gentoo users will suggest you use a chroot or a separate system to build packages for the system you're using.

Wild. I definitely fit the criteria for "veteran Gentoo user", and I would never, ever suggest that as a way to avoid the problem you're talking about.

AIUI, it won't work, or will be _complicated_ to set up (as programs not-infrequently need to build against new versions of libs, so you must _install_ those library packages in order to correctly build the packages that require them), or is identical to a binpkg build box (which -last I checked- was only encouraged if you had either a _very_ underpowered machine as your daily driver and a beefy build-box somewhere, or many, many systems that all could make use of the same set of packages, so saving time and power by having those packages built only once made sense).

EDIT: I looked at your forum post. I think you're inferring _way_ too much from the fact that two people that the forum software has given the tag 'Veteran' suggested "building in a chroot and then copying the packages over" (which closer inspection reveals to be either an overly-complicated binpkg build box, or a binpkg build box running in a chroot), and "set up a binpkg build box". Two people recommending this to you as a possible solution is _not_ "most" of the userbase... and the forum software's rating of them has no direct bearing on how good of a Gentoo admin they are. (I'm pretty sure the forum software still rates me as a "Newbie", as I've only ever made like four or ten posts. Most of my conversation happened over email, IRC, and the bug tracker.)


I used to moderate those forums. The ranks are based on post count, or whether you contributed to Gentoo in some form (forum moderator, infrastructure, ebuild developer, council/foundation member, etc).

The rank shouldn't be seen as a qualifier of how much you know about the distribution.


My comment regarding the suggestion was mostly to highlight that it's the easiest solution to the problem that people can think of, not to mean that most gentoo users actually maintain their systems like that. I consider it unnecessarily involved.


But you literally said

> ...most veteran gentoo users will suggest you use...

That's doesn't really agree with the claim that

> ...[I didn't claim that] most gentoo users actually maintain their systems like that.


I'm not sure how my statements are contradictory. The solutions people suggest to solve a problem aren't necessarily the ones they use. Most people aren't as bothered by the issue as I am, and as such won't need to solve it.


You can build binaries on Gentoo and update from the binaries you've built rather than compiling as you go!

You can build binaries for all of the packages that need to be updated by running the normal update command and adding "--buildpkgonly".


--buildpkgonly doesn't work for any packages whose dependencies aren't already fully satisfied, including being up-to-date. You simply cannot use --buildpkgonly for a world update save for the very trivial transactions, for which any of what I mentioned isn't a problem anyway.


I did not realize you were a Gentoo contributor when I first responded!

This is an interesting problem for sure. I don't know enough about portage internals to know whether it could be fixed easily, but it would be very nice to have.

So far I haven't really ran into any consistency issues caused by non-atomic upgrades. The only thing that comes to mind is needing to restart a zsh instance that was running during an upgrade that included it, and Firefox will sometimes tell me it needs to restart!

I have a fairly fast CPU (ryzen 3900x) so the time spent in an inconsistent state is probably much shorter than it is for others, I suppose this is why it's never bothered me before.


With ZFS I would think you could clone root pool, chroot clone, promote clone, potentially reboot. with ZFSBootMenu you can boot from an old version if need be.


I went back to Gentoo from Nix.

Turns out I really like the ability to decide to just randomly edit some file to fix an issue, and also shellscripts.


How is it different from Nix? Hell, it is much more easier/flexible with Nix, just clone nixpkgs and update a few files and build from that. You can have as many versions as you want.


Because for moat other distros i can just `vim /etc/somedir/config` which is a lot less work than pulling a repo, finding the right files to modify and then rebuilding the entire package.


Nix's time sync is that you have to constantly fiddle with Nix because it's incompatible with the way a lot of other distributions work and they made it to complicated for end users to package software themselves without referencing a manual.


> without referencing a manual.

Or even worse - the source code itself


I used Gentoo for my desktop around 15 years ago. It was a bit dumb in retrospect, but I learned a lot. Now I think that Gentoo works best as a base to create your own distribution (duh!). It is a meta-distribution after all.

If you build on the same machine you use it and there are no other machines it is mostly pointless. It should not come as a surprise that Yocto's bitbake was inspired by Portage. Other fun fact: ChromeOS is built on top of Portage.


I ran Gentoo for about 4 years (2017-2020). So many times you would get stuck needing some "masked off" package. And the advice on the Gentoo forum for getting yourself out of the pickle was usually: fresh install.

The trauma of that experience has left me with WSL as my sole Linux PC at home.


This is pure misinformation at best.

A masked package is generally caused by something not being stabilized yet, which can be fixed by adding the package to the package.accept_keywords file.

Sometimes a package with known issues, such as security vulnerabilities will also be masked. These can also be installed by adding the package to the package.unmask file.

Your issues were caused by not reading the documentation and taking advice from random people on forums. Ironically portage will actually tell you what you need to do to unmask a package if you read it's output too!

I hope this doesn't come off as too rude, but it's wrong to blame the distro for your misuse of it, especially when there are heaps of documentation and help messages in the output!


Huh, the last time I've done a "fresh install" was for the amd64 switch in 2008, my image has been rolling forward since then. I guess I am extremely lucky?


I would attribute a stable Gentoo system to skill and patience, not luck.

Out of curiosity, what is your use case for this particular Gentoo install? 15+ years is a long time to keep the same machine running.


This particular one is my general purpose desktop. I use it for everything from Emacs, development, web browsing, games (Steam mostly) etc.

Physically there is nothing left of the original hardware as it has gone through many generations of part replacements, Ship of Theseus style. It's the OS image that has survived through all this. My /home which I keep separate is another 10 years older.


Could be multiple machines. I carried an image over three laptops, rebuilding with the new `-march` as I went along.


Yeah, that's basically it but I use conservative CFLAGS, pretty much just "-O2" so no need to rebuild for CPU changes.


I have been using Gentoo forever (actually since around 2005). It has always worked well for me, documentation is great (though I always take a look at the Arch documentation as well), it is extremely stable (even though I run the "unstable" version (~amd64)

Th only thing that sometimes requires a bit of elbow grease is the update process (emerge @world) which can throw up large lists of "blockers", especially when some major component changes (like say the transition from python2 to python3). "eselect news" gives ample warning beforehand.

This is the reason I never advise new linux users to use it, but I also don't see myself using any different distribution.


I also started about that time and left it about 2 years ago. I've only reinstalled once during that time. But even on stable portage version these blocks are hell. Especially when you don't feel like toying with it for like a year and then it turns out that upgrade process requires packages versions which are not in the portage anymore etc.

With all but the most popular hardware you are pretty much on your own. It usually drops down to getting some debian drivers and understanding your system. It's all doable, but it's time consuming.

Still I don't think any distribution comes close to being so well organized and nice overall. It seems to take security seriously. It's just too bad that it became so unpopular. It's really hard to use it to a full potential without becoming a contributor nowadays. Which is fine if that's what you want to do but there are times when you want your OS to be your tool not your hobby. With more popularity it could be a very productive tool.


For other mildly OCD folk here: The parentheses is now closed)


You’re doing God’s work, friend.


How unstable is ubuntu latest lts compared to this?


Controversial answer- Ubuntu LTS is very stable. Now that being said I would not recommend Ubuntu to anyone really. I was never fan of their take on desktop (Unity) and transition to systemd but it was ok on headless servers. Now their latest pushes for Snap and Ubuntu Advantage is a solid “k-thx-bai”.

If you want server grade stability and Debian/Ubuntu-like feel, then go with Debian. Basic install is quite clean (not gentoo/arch level but very clean compared to *buntu).


Over the two or four years I used Ubuntu, I burned more time fixing upgrade problems in Ubuntu than (barring the libpng nonsense way back in the day) I've spent fixing Gentoo upgrade problems since ~2004.

I really, really, really wanted to be able to recommend Ubuntu, and for a long while it was REALLY good, so I could. But then something happened inside Canonical, (I guess they turned into clowns?) and they started releasing software that would just break _bad_ on upgrade. (In fact, had I not spent so much time developing my sysadmin skills with Gentoo, I would have been unable to recover from the upgrade problems I ran into.)


The advantage I have with gentoo for my personal servers (I use Mac for desktop) is that upgrades are incremental - I only have to deal with one issue at a time.

Upgrading Ubuntu LTS scars me and CentOS just wasn’t upgradable at all.


I remember trying Ubuntu when it was new. I did a default desktop install and after about an hour I tried to compile something and got "gcc: command not found". I could not fathom why anyone would not install a compiler on linux by default.

That was the last time I used Ubuntu.


It’s considered poor security practice to have compilers or interpreters installed on machines where they’re not needed. Someone who isn’t a developer and is only installing packages via apt (or snap, yuck) doesn’t need gcc.


"security" practices, only get in the way of the good guys.


Haha, I assume you are joking. Because they are intended to get in the way of the bad guys, to be sure at the cost of some inconvenience to the good guys.


Many ubuntu-*desktop* users don't need compiler, and since they were intended target audience ubuntu doesn't include it, after all if you need the compiler is it that painful to run `apt install -y build-essential`?


I had been using linux for for almost 10 years by the time Ubuntu came out, starting with SLS and then moving to Slackware. The concept of not having a compiler was foreign to me as it was required to build the kernel so your system would have necessary device drivers and features.

> ... after all if you need the compiler is it that painful to run `apt install -y build-essential`?

No, of course not. But that's when it became obvious to me that I was not the target audience for that distribution, and had switched to Gentoo shortly after.


Gentoo rocks. Installing Gentoo is a wonderful learning experience and it's the most flexible distro out there -- especially if you need to run a patched userland.

Not mentioned: Gentoo Prefix project is useful for managing a Gentoo installation that is at a path other than /. We use it for building our Linux development environment.

See [1] to give it a try. Warning! It will compile almost everything so it's going to take a bit of time!

[1]: https://wiki.gentoo.org/wiki/Project:Prefix/Bootstrap#Perfor...


I tried to do something similar for building highly optimized and slimmed down (only use flags that are needed) for container images (installing with different root path) but got some library issues in resulting system and gave up. maybe I'll try the same with prefix. I'm curious if compiling everything with exact expected CPU and LTO would result in measurable performance gains.


I really loved Gentoo as my main distro around 2005 or so. It was so nicely customizable and (comparatively) bleeding-edge. But then compiling everything seemed so wasteful in terms of CPU time and power in the end. X.org or GCC updates had to run overnight because the computer was pretty much unusable while that happened. So I eventually switched to boring old Debian, which is so nice and simple.

Still, good to see that it's still around, and there's an active community! I might even install it on some box I've got lying around.


> But then compiling everything seemed so wasteful in terms of CPU time and power in the end.

Is there a solution to cache the build artefacts and/or share them between a fleet of machines?

(inb4 nix)


Yes, distcc. But builds are a pleasure with so many cores nowadays, there's also niceness options so even on the old machines you didn't need to suffer.


Distcc moves the compilation somewhere else, ccache stores the compiled outputs, and both can work together. Although I'm not entirely sure how ccache works when all your clients use different CPUs. I only use distcc.


I've found icecream to be a lot nicer since it handles toolchain distribution and scheduling.


I upped the niceness years ago and barely notice that updates are running nowadays.


It's good to see Gentoo going strong. It used to be my main server operating system, I have fond memories of recompiling everything because of some libc updates on my low powered Intel Atom based server.


As someone who frequently recompiles ungoogled chrommium on arch, I hate to even imagine the pain of Gentoo.


Funny, I'm the opposite - I use gentoo and don't mind, but only use -bin packages for browsers because they take too long :D


Why do you bother there are binaries or just use a different browser?


I used to use Gentoo back in ~2004-2009 (College years) then switched to Ubuntu when I started working and didn't have time to deal with it anymore. I recently built a ryzen 7950x & 7900 xt system however and found ubuntu didn't yet have the necessary drivers and also was thinking how to put my new system through its paces.. So I switched to gentoo and actually its pretty great. Things compile substantially faster on my 16 core 7950x than they did on my 2004 P4 system :) so its actually pretty usable. However my only gripe is when I suddenly realize I need to install something and don't want to wait around for it to compile, it can be a pain. Luckily there are often binary packages or even docker where I can jump into a debian container and do what I need. All in all its pretty good, but at some point I might switch to arch or even back to ubuntu if the next release supports my system better.


>However my only gripe is when I suddenly realize I need to install something and don't want to wait around for it to compile, it can be a pain.

Yea, it's miserable to wait on building QT, or Boost to name a few. And, a while back I think emerged something that required Rust, so it wanted to build the version of llvm used to build rust, and then build rust. No thanks, rust-bin will do just fine for me.


Ya, those would be the ones you set loose before you go to bed and _hopefully_ will be done by the morning :) That being said, another thing I like about gentoo is how easy it is to be on the bleeding edge of certain packages, I run the latest -rc kernel (released each sunday usually) and mesa drivers. However I have to admit, even though gaming on linux is as good as it has ever been, I do the vast majority of gaming in windows still because I just don't want to deal with weird issues in my limited gaming time.


For me biggest killer feature in Gentoo would be decoupling building and installing process. eg. I run emerge on my low power laptop and it contacts my server to build binary packages with exact cflags and use flags requested by client. something jak distcc but on package level.


That's exactly what i do with FreeBSD and Poudriere.

I have a hetzner server that compiles ~all packages (ports) 24x7, optimized and customized for home and the business machines (Laptops, Servers(x64 and arm64), Workstations and jail-templates(x64 and arm64)) for two FreeBSD versions 12.x and 13.x RELEASE.

Then on the machines i point the pkg-repo to it (the hetzner-server) and install it as binary pkg's ala ArchLinux.


This is distcc.


Nix can do that too.


Someone has to have built some kind of automated binhost thing like this _somewhere_. I would love it if you could also do crossdev for Arm with it as well.


That's precisely what RELM[1] does.

[1]

https://github.com/Falkorium/relm


Mind double check url? Getting 404


Happy to see Gentoo Linux still -funroll-loops!

As an old Gentoo Dev, its remarkable to see so many people giving love to this project. Too bad it lost popularity over the years but it has a very special place in my heart. I don't have any machine currently running Gentoo for many reasons but i'm sure sooner or later will find a machine to make some rice, -funroll-loops and relive some good moments from my youth.


I still use Gentoo for the reasons I started years ago: it’s possible to install what you want without what you don’t.

RedHat wanted to install X for an update to mpg123 and that was the end for me.


The finance section show they do a ton with very little but there maybe trouble ahead. $16,000 in revenue, approx 65,000 in expenses and a balance of 97,000 in the bank.


It is not quite so bad as that. They list $11000 in operating expenses and $9500 in depreciation, so more like $20500 in expenses for a deficit of $4000 versus that $97000 in the bank. The other was $55000 in capital expenses, but they are clearly not spending that every year (depreciation is going to be closer to their average capital expense).


Financial statements are always up to interpretations. But it's nice to see that they publish theirs very prominently. Not every open source community does.


This was an intentional large spend. Typically we have a large surplus every year and the money was just sitting around, growing. This year we decided to do something productive with some of it.


I bought a Compaq laptop with an AMD64 processor back in 2006, my first 64-bit machine. I put Gentoo on it to make sure I had 64-bit support for all the apps because the major distros at the time weren't all there yet. Man, that thing chugged to compile everything, but I was there... 64-bit everything!


I love Gentoo. Used to be my daily distro up to 5/6 years ago, I moved to Arch out of laziness because it was not manageable to always recompile a lot of packages. I still have the same PC than at that time and from time to time wondering if I should give it a go again.


I used Gentoo from 2004 to last year. What finally drove me off of was the enormous amount of time it took to update my system (literally weeks on my old laptop) as it compiled all these enormously bloated apps.

It was also super annoying to have to constantly keep updating or risk system breakage when you finally did try to update. That meant that my computer had to virtually never stop compiling to keep up with the endless updates. It was a complete waste of power, compute resources, and wear on my computer's components.

I hate to admit it, but switching to a binary-only distro made almost all these headaches go away.

I miss having the flexibility of Gentoo, but I don't miss endlessly compiling from source.


Hrm, longtime gentoo user here, since 2002. I have used everything else, slack, redhat (since like the MIT TSX archive times, still have the floppies), debian, mandrake, SuSe, MX, Anti-X, Puppy, Yellow Dog. Those are distros I _used_ not installed for fun, but used for work or daily drivers. I am not sure why, but I keep going back to Gentoo. My main desktop at work and home is gentoo after a fairly long hiatus of Slack, Mint, MX. I think I see (with the exception of MX and Slack) a lot of distros going the way of "Windows" in their design choices towards users.

If you are not a "power user" perhaps gentoo is not for you. I teach at a uni, and feel like if you are not a developer, perhaps most modern linux distros are for you... but if you are a developer, then perhaps something like Gentoo or Arch might be a good fit. NOT because you will be doing more work, but because a lot of the others are going towards spoon-fed operating systems that make too many choices for you, or phone home / make search suggestions too much for you.

OTOH, perhaps you can stop emerging bloated apps. Or get something newer than a "old laptop". No one said you should recompile every dang linux package on machine that has a slower than everything else storage and bus because it is portable. Recall, you normally sacrifice for portability.

I hope you continue to use linux, no matter the flavor, and to each his own, but I think many comments here are along the same thread: "I tried this free thing, where I could design it myself, build it all myself, and it was _work_ and I did not like it", when in reality the idea is "you have ultimate control, and it will cost you a little _work_, are you OK with that?"


As someone whose first Linux distribution was Gentoo back in 2005, what took you so long? I mean, it's always been a 'high maintenance' distribution. The appeal for me early on was that it forced me to understand more about how a Linux distribution worked, compiling different kernel options, etc. After a few years I moved to simpler distributions like CentOS, then Arch and finally just using MacOS to ssh to a VM with stable Debian releases.


You might have benefited from installing the -bin versions of big packages like web browers.


Gentoo is fantastic for building a custom rootfs. I much prefer it to Buildroot or Yocto. Google uses the Gentoo package system for ChromeOS. Using the same portage file allows you to trivially pin the exact version of every installed package and if you cache the downloaded source files (/distfiles), you can reproduce the build anytime in the future.


Any suggestions how to get started building a cross rootfs with gentoo? My experience is limited to half a year of gentoo on my laptop in highschool, but I hate yocto with passion and would love to move to gentoo.


Do you have good resource for how to do this?


Gentoo is the only way to run Linux without dbus udev consolekit polkit and the rest of the annoying Freedesktop.org software. If you run GNOME or some giant desktop environment maybe that means nothing to you but it is very important for me.


Ex-gentoo user here. In one of my ancient laptops, amd64 from 2006 maybe, the default kernel that came with the bootstrap Gentoo did not handle well throttling CPU speed. It was always by default to the maximum available and, thus, after some time the laptop would switch off itself because of excess heat.

The only solution I found was to compile another kernel with the correct extensions loaded and put a big fan under the laptop during that process.

Anyway, the situation was really funny for my coworkers but I learnt a lot of things thanks to Gentoo.


Was it an intel CPU? My laptop also had issues with throttling, but it turns out that turbo boost was on, and the BIOS had no way to turn it off.

I wound up writing a cronjob that does "echo 1 > no_turbo" every minute... although it only really needs to be done once per boot, or every time you plug/unplug.


No, it was a AMD. I didn't found any way of solving it through the BIOS.


Pretty sure there is an AMD no_turbo equivalent, but I don't know what it is off-hand... My 2950x had a BIOS toggle so it's locked to the base frequency.


I used Gentoo around 2004/2005 and I keep very positive memories, I learnt a lot. Very attractive dist for developers because being source based, you can quickly test a patch in a system component (like eg. Wayland, Mutter, GDM) by just telling Portage (the package manager) to pick your patch and re-installing the package (re-emerging in Gentoo parlance). I even was able to contribute a patch for upstream Firefox that way (because compiling Firefox yourself from source is so much difficult).

I also built my own kernel as Gentoo favors that. I remember tailoring the kernel to my hardware (picking only the kernel modules needed to my peripherals), my resulting kernel was about 2 MB in size, while the corresponding kernels at that time for Ubuntu or Fedora were around 20 MB (because they need to blindly include all peripherals which any user may have) that meant 18 MB less memory in RAM permanently (good for embedded and systems with constrained memory).

After some years I end up switching to Fedora because I could not spend so much free time just maintaining my Gentoo distro (it's fun and you have so much control over your distro, but at the expense of more time spent on that).


I started my Linux life with Gentoo, rc4. Stage1 tarballs. Good times, many things learned.

I've been using Gentoo on the server and every sync I pray that something doesn't change so that I'll have to spend a day dealing with the broken crap of package manager.

Otoh my provider increased the server cost by 10 eur/ month so I'm recompiling packages just to drive up its energy cost, previously I did only necessary updates, now I'm running wild with compling weekly. Freaking Hetzner. 13 year old hardware renting for full price.

Anyhow I wouldn't do Gentoo on the server again, but I'm stuck with it now, as it pretty much runs everything, mail, git, all kinds of databases, over 50 domains... If cloud wasn't so expensive compared I would've had a vps for each project. But migrating to cloud would cost 4 times as much and I'd have way less storage.

Anyhow I digress, one of those days ... I'll habe to unweed my system so that depclean doesn't remove half the installed packages.


> I've been using Gentoo on the server

I don't know what "the server" is referring to but this almost feels irresponsible. If it is your personal server that's great but I can't remember a time I've been in a position professionally (where time is a resource/of the essence/being billed/we're up against a clock for a deadline) where tinkering at the distribution configuration level was ever a good idea.


Actually about 11-12 years ago I worked on a server in our validation lab, I think it was a video encoder for iptv and found that it used gentoo. They didn't compile on the server itself of course, but leveraged the flexible build system to apply patches etc and I assume built binaries in a repo somewhere where it could pull updates from.


It was part of a trio that was interconnected via ipsec. The small cluster ran a mongodb replicaset and some Go backends and AngularJS frontends. I didn't really need them and I got rid of 2 servers.

It's not irresponsible, I'm not a scrub and I won't be indirectly insulted.


A pretty good year.

I particularly enjoy the liveGUI iso and the clang as system compiler.


In the year 2023 and in light of things like Clear Linux (super optimized binaries, runs fast) and immutable setups like Nix who is using Gentoo and why?


Gentoo was always about flexibility more so than about performance in the first place


still probably the most sophisticated package manager, so if you think that sort of thing is neat


Using Gentoo as my primary desktop OS back in the mid-2000s taught me incredibly valuable problem solving skills. The lack of any safety net allowed me to break stuff in such unique ways I usually couldn't simply Google a quick fix. The only solution was digging into the details yourself and finding creative solutions.


I remember getting into gentoo because I wanted to learn more about Linux (and operating systems in general) than I could using Ubuntu… I have to say the things I learned have greatly helped me. Anywhere from debugging to troubleshooting OS related problems…even in windows. One day I’ll make time to re install it on my box.

RIP Griz64


Was interesting to see a callout to Racket here. It looks like the Gentoo project has some Racket fans!

https://gentoo-racket.gitlab.io//About.html


"Clang / LLVM as primary system compiler"

What is the rationale behind this?


From how I read it, it's an option, not an imposition. Some people have grown to really dislike GCC for one reason or another, so they get the chance to live without it as much as possible. Others will still be able to use GCC.


Gentoo supports several compilers as system compilers.

Now Clang is an option, too.


Yes, that makes sense upon re-reading that portion.


One of the best distro that offers an alternative to the bloated MS systemd

OpenRC, https://wiki.gentoo.org/wiki/OpenRC

Thanks


> ...bloated MS systemd

I dislike systemd as much as the next person who's gotten burned in production by systemd "quirks", but the correct epithet is "Poetteringware". systemd predates Poettering's hire by Microsoft, and Poettering's projects have a very particular style to them.

(Namely, when they break, they break _badly_ and provide effectively-zero information to help you understand what went wrong and how to fix it... and advocates for the project that's giving you grief today either dismiss your questions as anti-$PROJECT FUD, or are just as helpless to understand why you're running into trouble as you are.)


Please provide an actual example of systemd breaking which you experienced yourself. This generalised criticism mixed up with hate towards other software initiated by him long ago can't spawn any discussion and leaves your claims undisputable.


Ah, you reminded me of thing c) that I encounter with Poetteringware: "Provide me with detailed examples of what went wrong... not because I'm interested in actually fixing your problem, but because I believe your complaints are fictional and you're actually engaging in character/project assassination."

The specifics of the systemd breakage were subtle, complex, undocumented, and came out as part of working on proprietary software at my day job... so even if I could remember enough about the particulars to satisfy you, I'm not sure if my NDAs would permit me to talk about it.

I do remember the NetworkManager breakage that caused me to notice that just using wpa_supplicant and friends was more than good enough, and the PulseAudio breakage that made me realize how much easier setting up jackd was than attempting to understand what was going wrong with PulseAudio.

NetworkManager: For some damn reason, the software wouldn't stop attempting to assign an MTU of zero to my interfaces that had IPv6 enabled. This caused them to get the smallest-permitted MTU (IIRC, something like 1260), and -IIRC- some rather loud complaining in the logs. I found the relevant bug report, noticed the quality of developer conversation surrounding it, and decided to find alternatives. I did... wpa_supplicant + wpa_gui/wpa_cli for my wireless interfaces and the built-in Gentoo networking config files for my wired interface (which -in practice- means "use dhcpcd to get an IPv4 address, and SLAAC to get an IPv6 address").

PulseAudio: For some reason, after a PA upgrade, it started adding in an unpredictable and variable > 100ms of latency to my audio. This required manual adjustment to mplayer playback. Burned a long time (a week? more?) verifying that the problem was just in PA, and attempting to find out what might be causing it and how to fix it. PulseAudio users were utterly unhelpful. Decided to try using jackd, which -though initially difficult to understand- I found to be far, far easier to learn to configure and troubleshoot than PulseAudio.

I've found that with Poetteringware, you're a fan... right up until the point at which it breaks and leaves you with effectively-zero information on what is going wrong and how to fix it, and/or you have a "use case" that the devs don't want to go to the trouble of handling. (This latter thing is often accompanied by assertions that the thing you want to do is a totally invalid thing that noone in their right mind would ever do, so do go away now.)


He has nothing to do with NetworkManager, not a single comkit, as far as I can see.


I know your requests for specifics is legitimate and ought to be taken in good faith but on the other hand.

> and advocates for the project that's giving you grief today either dismiss your questions as anti-$PROJECT FUD, or

How about NFS shares that need to explicitly closed lest both server and client get stuck forever when trying to shut down later leading to a laptop needing to call the server via ssh when the lid is closed to initiate this because anything else is inexplicably broken for no reason discernible?


Start/stop job hangs, has happened to me and has been complained about 1000s of times. But never happened to me on runit or OpenRC.

https://forum.garudalinux.org/t/during-boot-i-have-to-wait-a...

https://www.reddit.com/r/linuxquestions/comments/3vc526/how_...


> Please provide an actual example of systemd breaking which you experienced yourself.

Okay; in my last job, servers would randomly get stuck shutting down, as far as we could ever tell because systemd was getting stuck in some sort of circular dependency.


Text files and separate tools that do one thing, forever! :happy openrc/eudev user:


It's good to see that those who want to build software from source, still have that option on the distribution level.

Even in insert current year.


Clang as the main compiler? That is going to be a game changer for me. Kudos to the gentoo team!


What are the benefits of using Clang over GCC?


There is a bug which affects my Ryzen 5 2600 that means boost cannot compile with GCC using march=native. I'm fairly sure that switching to Clang will sort this out, so I'm looking forward to trying it out.

Here's the bug if anyone is interested: https://bugs.gentoo.org/724314


Only ones I can think of are that Clang has better(ish) error messages, and clangd language server is cool.

Used to be Clang was faster than gcc (both compiling and the apps generated), but according to Wikipedia they now trade blows.

Some people are very much against the GPL. I don’t know why they put corporate interests over users interests. I assume it’s a cousin to “temporarily embarrassed millionaire” thought processes.


> Some people are very much against the GPL. I don’t know why they put corporate interests over users interests.

N=1, I like it when people make non-GNU systems work because I'm the kind of pendant who firmly believes that GNU!=Linux is a real and important distinction, and building Linux distros that aren't GNU forces the point. Unfortunately it appears that Gentoo relies on GNU coreutils, so this is just a baby step in that direction. On the other hand, Gentoo happily runs a prefix install on a lot of things that aren't Linux, and they have historically even run fully on a FreeBSD kernel, so they're still contributing from the other direction (Gentoo GNU/kFreeBSD, I guess). For nonGNU/Linux, Alpine is the reigning champion and Chimera looks super promising, but I'd love to see Gentoo as a good option.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: