When you’ve been running GNU/Linux distributions for an adequate number of years, I do believe you’ll eventually find yourself walking the path to Mount Gentoo in hope of joining the ancient Greybeards. Many have met their demise on the road ahead, but armed with the Gentoo handbook we’re confident that it’s within our reach.
What is Gentoo?
Gentoo is a free operating system based on either Linux or FreeBSD that can be automatically optimized and customized for just about any application or need. Extreme configurability, performance and a top-notch user and developer community are all hallmarks of the Gentoo experience according to the projects about Gentoo page.
Why choose Gentoo Linux?
If extreme configurability and performance was not enough of a selling point, Gentoo is one of the few remaining GNU/Linux distributions that lets you assemble a Unix-like operating system. Let me quote Gentoo’s unofficial mascot:
I was a bit frustrated at the current state of Linux distributions… until I tried Gentoo Linux. – Larry the Cow
Installation
Gentoo is a source based distribution that leaves most choices up to the user and expects you to put in the time and effort necessary to build your own system. However, don’t get discouraged by what initially might seem like an overwhelming task. The Gentoo handbook is an excellent resource that’ll safely guide you though the installation.
I will say that the installation is rather time-consuming though. I selected the default desktop profile and went with Xfce as my desktop environment to keep a lightweight system. Even so, I still spent two days configuring the system and building various system components.
Building the Linux kernel is also a part of the installation, but if you’re unfamiliar with Linux kernel configuration you might rely on Gentoo’s genkernel tool. It will automate the process and provide you with a “one size fits all†solution. However, as an inspired Gentoo user you probably want to optimize the kernel configuration to your specific hardware.
Package management
Portage is the package manager, build system and heart of Gentoo. Portage provides you with unparalleled granular control over your installation. However, that kind of power also delivers complexity and a steep learning curve.
Gentoo being a source based distribution will introduce you to quite a few new concepts when it comes to maintaining your installation. Most notably you’ll have to decide with features each package should support by specifying USE flag’s.
Changing USE flag’s for packages will often pull in additional dependencies and require rebuilds. Occasionally you’ll also have to manage conflicting USE flag’s and dependencies. It’s not as complicated as it sounds though as Gentoo already have predefined Portage profiles that specifies default values for global and per-package USE flag.
Recently I moved to a KDE Plasma build by switching to the kde desktop profile and issuing a world rebuild without experiencing any issues. In addition to using Portage profiles, you’ll also want to set some system wide USE flag’s in your Portage’s make.conf to avoid unnecessary features and dependencies (like Gnome support on a KDE based build).
Mastering Portage will likely make or break your Gentoo experience. In my opinion, spending a good amount of time with “man portage and man emerge†will save a lot of time and sorrow in the long run.
Usage
Please refer to man portage 😉
I don’t think any distribution offers quite the same level of flexibility as Gentoo in regard to system customization. After all, Gentoo’s killer feature is its adaptability, hence the term metadistribution.
Currently I’m running a KDE Plasma 5.8.6 environment without systemd on my Asus G73SW (Intel Core i7) laptop. I have not uncovered anything that didn’t work as expected so I would not hesitate to recommend running KDE on Gentoo. I’ve now used Gentoo for about a year and my impression of it in terms of quality and stability is overwhelmingly positive.
As you might expect, running a source based distribution does require your continuous attention, but unlike popular belief, you’re not “always compiling†on Gentoo. Most packages compile in a matter of minutes, but you do have those special snowflakes that takes hours to build. As an example, LibreOffice clocks in at 4 hours while Firefox is done within a single hour. Both packages are available in binary format though, but well I like to keep things consistent.
In addition to my desktop system I also deployed a Gentoo based VPS last year to host my onion site on the Tor network. In comparison, running a Gentoo server predictably sees far less compile action than a desktop system. It’s been a good experience and it definitely won’t be my last Gentoo server deployment.
Should you use Gentoo Linux?
Optimization and customization are valid arguments, but for me the main reason for choosing Gentoo was the freedom of choice. The ability to globally disable support for technologies I do not want installed on my system with USE flags has been a feature I’ve really come to appreciate.
Rolling but no bleeding
Gentoo is a rolling distribution that priorities proven and stable software. If you’re looking for a rolling “bleeding edge†distribution you’re better suited with Arch or Void Linux.
Work vs Reward
I believe you’ll have a definitive answer after performing a Gentoo installation. If you found the experience to be a waste of time without any obvious benefits, well then Gentoo is unfortunately not what you’re looking for.
OpenRC
OpenRC is Gentoo’s default dependency-based init system that maintains compatibility with the system provided init program. Works as advertised in my experience and that’s all I want from an init system. Users preferring systemd will find Portage profile(s) for their needs.
Final thoughts.
Running Gentoo has been an interesting and rewarding experience. I did not intend to keep the system running after the initial installation, but somewhere along the road it went from being an alien environment to become a safe haven. After a year of running Gentoo Linux, I’ll place it only behind Slackware on my all time favorite list.
Gentoo Linux links
Gentoo Linux
Gentoo Handbook
Gentoo Forums
Roger hosts his website off of a Raspberry Pi!
This post, re-published here with permission, was originally published on Roger’s site here.
If you want bleeding edge, Gentoo is still a great choice – just add the unstable keyword to your ACCEPT_KEYWORDS or for individual packages that are even newer, add them to package.accept_keywords with **. There are also several overlays like the KDE one which track the newest releases and even development snapshots before they make the main portage tree.
Once you’re used to the flexibility and power of Gentoo, it’s very hard to go back. Major props to Arch, though, for some absurdly good documentation.