I love Gentoo. It “rulez”. It is my go-to Linux distribution for everything: servers, desktops, appliances. It has been very good to me for almost ten years. So why gush ? Because Gentoo has always received a lot of misguided hate, which I feel needs some counterbalancing.
Gentoo is not for total beginners
When you download a Gentoo ISO, you don’t get an installer. You don’t even get the files you need to install Gentoo. What you do get is a minimal LiveCD that boots right into a root shell, allowing you to prepare your disk(s) and download the bootstrap files. All is done from the command line, and while it may seem daunting, the Gentoo Handbook is a step-by-step guide that explains everything you’re doing and why you’re doing it. This does mean you at least have to know your way around a command prompt. You don’t need to understand it all, but at least be able to move around directories and use a simple text editor like Nano.
While that paragraph may sound like an argument against Gentoo, I think it’s actually a positive thing. To even install Gentoo, you need a functioning brain. No scrubs allowed! As a corollary, once you have successfully installed your first Gentoo using the Handbook, you should possess sufficient knowledge to perform basic system tasks like installing, configuring and updating software packages. It’s “difficult” because you’re learning, and that’s a good thing.
Gentoo is NOT a bad choice for servers
I said it at the start of this post: I use Gentoo everywhere. I use it on the server hosting this site. I use it on my file server appliances. I use it in VMware guests when I’m prototyping ideas. Sure, it takes a few minutes to download and compile sources, but given today’s hardware, that time is negligible. I can deploy a new LAMP server, from scratch, in about 10 minutes.
A big, recurring argument against Gentoo servers, which I think is fallacious, is that Gentoo’s security and stability model consists of updating your software all the time. Yes, that is how security and stability are ensured, but that’s no different from any other Linux/BSD distro or operating system. You update Windows once a month, right ? You stay on top of security notices for things like PHP, Tomcat, MySQL and whatnot. Actually, Gentoo is different in two major ways. First, being a source-based distro, new patches are merged very quickly. You don’t need to wait for some guy to rebuild RPMs or any other binary package, the Gentoo maintainer for that particular piece of software only needs to test the patch and add ONE SINGLE LINE to the ebuild. This ebuild is then delivered to you the next time you do “emerge –sync”, at which point you may update and have the fix in place immediately. If, for some reason, the maintainer is slacking off, you can do it yourself by editing that same ebuild on your machine. You do not need to figure out how the package works, or how to install development tools: everything you need is part of the base system.
The second way Gentoo differs from most distros is in its community, made up of power users just like you. Because it is harder to install, this weeds out the beginners so the great majority of Gentoo users are pretty sharp computer “whizzes”. They help each other out, and expect a certain level of intellect. If you ask a question, you won’t get a bunch of “me too” or “u suck” replies. Chances are, if you run into a problem, you’re not alone, and a fellow user might share their selfmade patches or config files to show you how to fix it. Similarly, the packages themselves often incorporate a handful of Gentoo-specific additions, contributed by the users to make everyone’s lives easier, or to add commonly needed functionality in a simple and consistent way. For example, building Postfix with MySQL support is a simple matter of enabling the “+mysql” USE flag. You don’t even need to mess with 3rd party addons or massage patch files to suit your particular version, someone else has integrated it already. You quickly learn to trust your fellow Gentoo users because they share the same high standards and priorities as yourself.
Gentoo makes maintenance easy!
Portage, which is Gentoo’s package management system, is a fantastic tool. It isn’t perfect, nothing is, but it gets a lot of things very right. Because each package uses an ebuild, which is a set of instructions to compile and install that particular piece of software, Portage uses a lot of information to help you make the right decisions. It distinguishes binaries from config files and documentation, and treats each type of file differently, intelligently. When you update a package, it compares the config files with your existing ones, presents a diff, and offers to interactively merge any changes – but only when you’re ready. It remembers which files need to be reviewed and presents them as a list. It does not make any assumptions on your behalf. Compare with RHEL/CentOS which will backup your configs, then silently install its own defaults every time, and won’t even tell you which files it modified. Portage is what makes Gentoo awesome and pleasant to work with.
Portage also knows about conflicts. If you install two competing software packages that do not play nice with each other, it will tell you, and will prevent you from installing both at the same time. Similarly, if one package tries to overwrite another’s binaries, Portage will stop it and tell you, so you can decide which package should take precedence. This is a perk from RPM-based distros that has been carried over.
Gentoo teaches you about the software you use
Building all your software from source, even though the process is 99% automated, is a very educational experience. You will start noticing which packages own certain files, and how they fit in together. Being able to tweak everything via USE flags makes you aware of many features you didn’t even know existed.
Gentoo values your time
Wait, what ? Yes! Gentoo takes longer to build packages, but it does many things to shorten the amount of time you have to spend fussing with the system. It tries to make routine tasks as quick and easy as possible, so you can spend your time being productive. You can automate almost all of it with shell scripts, customize it in endless ways, and even create your own self-managed Gentoo repository with a simple rsync clone, which is very handy if you’re running multiple Gentoo machines as it conserves bandwidth, and allows you to control what gets updated and how frequently. If you are a seasoned Linux user, this is the distro that gives you all the power without getting in your way.
So in closing, I hope you’ll give Gentoo the respect it deserves. It is not the right fit for everyone, but don’t let its detractors fool you. If you feel restricted and frustrated by binary-based distros, you may want to spend a weekend getting to know Gentoo. The effort you put in will pay off in spades.