Gentoo for All the Unusual Reasons

You might think of Gentoo as a bleeding-edge distribution for development workstations, but the simple packaging system can make it a good choice for any production system that needs to stay up to date.

and you have your new version.

Gentoo has copies of the source tarballs required for all of its various packages on its mirrors around the world. Normally, Portage gets the source from one of them. If, however, you're building something that isn't in Gentoo's mirrors, no problem. Portage simply reaches out to the original upstream download site.

Portage uses md5sums to ensure that you get uncorrupted downloads. That's what the third command above (ebuild ... digest) is for; it downloads the source and then computes the md5sum for you. Because you're the one doing the version bump, it's up to you to make sure you actually have an uncorrupted download. Therefore, you should probably do ebuild ... unpack first to get the download, make sure it's okay, then do the digest command.

Finally, if you want a software package your OS doesn't provide, you have to write your own. With Gentoo, writing a custom .ebuild is easy.

All about ebuilds

Gentoo's package descriptions are written in bash. The various instructions go in functions that are called by Portage along the way. The major ones are:


and they are called in order. To tell Portage how to build your software, write functions for each of the steps, proceeding each with a bit of information, such as the SRC_URI discussed previously.

To compile your sources, you might use:

src_compile () {
        ./configure --prefix=/usr

The amazing thing about these shell scripts is they can provide sensible defaults by overloading functions. In fact, the default for src_compile() is pretty much what I showed above, which is perfect for many packages. In fact, you could write an ebuild that relies on the defaults and has no custom functions defined at all.

Sometime you might want to ./configure a package differently depending on what sort of system you have. Portage has an environment variable called USE, set in /etc/make.conf and overrideable on the command line, that contains tokens you can use to describe and customize your system. Say you've got a package that can be told to build differently depending on whether you want, say, X Window System support or IPv6 support. Your src_compile() function might look something like this:

src_compile () {
        use X    && conf="${conf} --with-x"
        use ipv6 || conf="${conf} --without-ipv6"

        ./configure --prefix=/usr ${conf}

You can see various features of shell scripting being used. In this example, if your system has X on it, this package is told to go ahead and build in X support. If it's a server, and you don't need any of that, your software is built without that extra overhead. The USE variables be can overridden on the command line, so you have even more precise control if you need it.

src_unpack() works the same. If you don't include one, Portage plows ahead, untars the source tarball in the default place, changes directories and sets the working directory environment variable, $WORKDIR accordingly. On the other hand, if something unusual has to happen—say, a patch is applied— you then can write a simple unpack function yourself:

src_unpack () {
        unpack ${A}
        epatch ${FILESDIR}/fixit.patch


I conclude with a full example. I had a client that exclusively used's implementation of the SSH2 protocol. So, I needed to install it on a number of machines. See Listing 1.

An ebuild starts by setting a number of environment variables, including:

  • SLOT: typically used for libraries. When an ebuild author knows multiple versions of the same packages can be installed on a system at the same time, he or she can assign a slot number to distinguish them. On one of my systems I have Berkeley DB version 1.85 (SLOT 1), version 3.2.9 (SLOT 3), version 4.0.14 (SLOT 4) and even version 4.1.25_p1 (SLOT 4.1). Plenty of software is out there that was written to use the older APIs; there's no reason they shouldn't be able to be installed. If a newer version in the 4.0 series is released as stable, say version 4.0.17, as long as it stays in SLOT 4 my system offers me the upgrade from 4.0.14, without removing the other versions installed. Admittedly, Berkeley DB is one of the more complicated examples out there, but it demonstrates the power behind Gentoo's slot implementation. Most ebuilds don't need any of this and say SLOT=“0”.

  • KEYWORDS: where you indicate support for different architectures. In the example, I've shown that this ebuild is known as working and stable on x86 series platforms. The ~ in ~ppc means that it's masked. I know previous versions build on PowerPC systems, but I don't have one handy to test with, so others may want to take caution before deciding to install this version. In the official Portage tree, an ebuild like this stays in this state for a few weeks until people using PowerPCs are able to test the ebuild. After several positive reports, the ebuild would be unmasked.

  • DEPEND, RDEPEND: where dependencies are listed. It's a fairly complete grammar and particular versions of necessary packages can be listed. The most common modifiers are >=, which indicates that at least that version must be installed, usually because of an API that our program depends on; and !, used to show that this package conflicts with the presence of another. Both cannot be installed at the same time.

  • RDEPEND: runtime dependencies, things that have to be installed to use the package. DEPEND are dependencies to build it in the first place; the difference shows up only when you're installing binary packages built elsewhere.

  • RESTRICT: various fine-grained controls of Portage's features are possible. In this case, because this is an ebuild I cooked up myself, I use nomirror to tell emerge not to bother looking in Gentoo's family of mirrors. This doesn't actually imply that I can't use a mirror provided by the upstream authors. In fact, if you look at SRC_URI, you'll see that I've listed a mirror close to me where I know I should be able to get the .tar.gz I need.

Then, we proceed to overloading the various functions that control how the package is built. The src_compile() function is the interesting bit. I've taken the example above and fleshed it out a bit. You can see that some options are controlled by USE variables, while others we specify, such as where we want the configuration files to go. We don't really need the die failure messages, but they illustrate how we have full semantics and the power of a shell script available.

Finally, in the src_install() function, we could have relied on the default, but on my system, files in /etc/init.d don't have .rc appended to them. More important, this is intended to replace OpenSSH on the target systems where this ebuild is deployed. Therefore, I wanted to be clear that the RC script was different from the one that OpenSSH put in place.

Portage provides a rich library of helper functions that simplify the execution of common tasks. We take advantage of one to say where we want the RC script to go and to see that it is marked executable. You now place the ebuild into your local overlay of the Portage tree and tell emerge to do its thing.

This example only scratches the surface. For more details, see, the output of emerge --help and the man pages for ebuild(1) and ebuild(5) on any Gentoo system.


-- Andrew Frederick Cowie Operational Dynamics Consulting Pty Ltd


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

You get the libraries you nee

Anonymous's picture

You get the libraries you need in the versions you need and put them in a library search path. Every version of Linux has a particular version of libraries, and this problem isn't any more severe in Gentoo than anywhere else, the difference being that you're *not* going to find a binary only program that was aimed at a version of Gentoo, compared to the unlikely scenario of finding it for exactly the distribution and version you were using.

Intel Fortran Compiler for Gentoo? Proprietary question remains

Martin Jasny's picture

I just went to Gentoo's sources page and found out that you can have Intel Fortran Compiler - The Pentium optimized compiler for Linux - in its latest version 7+ for Gentoo. I am completely perplexed: how come they give you the source free of charge? If they do, that would be VERY nice.

But my basic question remains: How do you deal with proprietary binary packages on Gentoo, for which you have no source code?

Gentoo can handle pre-compiled binary too.

Lance's picture

For example, the realone media player is not open source which can still be installed into a gentoo system. Gentoo will make sure all underlying libaries are there, and download and install the binary from the company's site.

In fact, many large packages have optional precompiled binary in Gentoo portage tree, for example mozilla-firebird, Open Office. You can emerge the binary versions if cannot wait to use them.

You just do?

Anonymous's picture

You install the binary package, opera or doom3 aren't available as source code, either...

Yeah, what he said. Neverw

Anonymous's picture

Yeah, what he said.

Neverwinter Nights rocks on Gentoo!!!


Anonymous's picture

Time to do some reading.

I really hope that you don't

Distro Tester's picture

I really hope that you don't seriously believe that site as the truth. Its constructed by a blowhard who got into an argument with some other blowhards. Their opinions didn't match. Most people choose Gentoo because its supposed to be "hard". Most keep it because it doesn't crash, especially the first time they grab a new app from a website somewhere, compile it and wonder where the errors are! Because the "distro" needs compiling, it comes with all the right compiler tools, as default. There's no need to find a deb or rpm for "make", for example.

I've got to say that this is

Nicolas Kassis's picture

I've got to say that this is one of my favorite thing about Gentoo. I installed Fedora Core 3 the other day and tried to chroot into one of my other linux installs and chroot wasn't their. Then the FC3 kernel gave me some problems so I wanted to recompile but suprise the kernel source don't come standard.

FC3 is great, My dad runs it on his desktop at home (I never hear him complain. And I'm impressed at how he started to figure out how to customize Gnome. He is no Computer geek but he has a lot of fun with Fedora) FC3 is not meant for me.

I need the programming tools as I'm studying computer science right now and I expiriment a lot. A basic installed of Gentoo come with all the tools I would need to write compile and package a new piece of software.

I've been running gentoo since the first 1.0 rc and I've ever found something better for me. On the server I manage at my university I run debian thought because one they have pretty old Hardware and second Apt is probably the best next thing to Portage. I don't need anything special on those servers so why run Gentoo except because I know the system better.

The right tool for the right thing.


Dude, have you ever installed

Anonymous's picture

Dude, have you ever installed FC3? You have every bit as much control over what's installed IF you took the time to READ. Custom install can puts gobs of everything you think you "need" on the system. The default vanilla install doesn't put chroot because they didn't anticipate people as smart and l33t as you using the system so they decided to make it for st00pid people. That's what Fedora is all about, after all.

A "basic" install of any linux distro can include the libs and compilers. You just happened upon a distro that doesn't just put "basic" stuff on, but a billion other little things you've never heard of.


Anonymous's picture

A "basic" install of any linux distro can include the libs and compilers. You just happened upon a distro that doesn't just put "basic" stuff on, but a billion other little things you've never heard of.

Well put. I get askde often, "what distro do you use????" and then i get "i use Fedora." or "I got Slackware" etc. etc. My response is "". Perp1exed, they either respond with a genius "wtf" or "no you dumbass." I have stopped asking most if they have heard of LFS.
Two months ago I met the leetest girl by asking her what her distro was.
she sighs and says,"LFS." one in a million. ;)

Do-It-Yourself Packages - get better informed

Elder Costa's picture

The problem is you're stuck with waiting for your distribution to release a new version of the .rpm, .deb, .pkg and so on, which could take a long while, leaving you in the position of wanting to roll your own. That's where the trouble creeps in. Conceptually, creating your own new .rpm or .deb package is easy. "Just use the existing 0.16.1 package as a prototype." But for most people, that is, anyone not at wizard level and sometimes not even then, it's actually rather tough to do.

Making rpm/deb/tgz packages is a rather simple task: just use checkinstall. I have used it to install either newer versions or non existant packages in both debian and redhat. Assuming the dependencies are met (and they most certainly are in the hypthetic situation presented by the author) it's really a piece of cake.

checkinstall - yeah right

Klavs Klavsen's picture

I've also used checkinstall many times - and many of them, it utterly failed in creating a working rpm-package, which meant I ended up writing my own spec file instead. I have never had this problem with gentoo, as ebuilds is so easy to write (and often I can just rename the ebuild file and it just works) new ebuilds, so it's my preferred way.

A Gentoo structural limit

1.0's picture

I'm a Linux user since kernel 1.0 (about 11 years ago).
I began with Slackware, then I tried Debian and went
with SUSE and RedHat.
Since a year, I'm a Gentoo fan and I like very very much this source distro. I fully agree with the article and, if you have time to do an install from stage 1, I think that's a very good idea especially for servers, because in doing that you deeply check the hardware reliability and also with the cheapest components you can trust your server.
The flexibility of this source distro and its really wanderful portage are great and you never will have a broken binary or library conflict or incompatibility and always an updated system.

The structural limit is the compiling time and the load of this process. It is that if you need a new big package installed, that could take also many hours and a big load for the machine. The problem could be alleviate if you have many networked systems with the same hardware, so that you can use distcc (always ccache) and compile only one binary package for installing it on all systems. But you need to be carefull in the times and niceness of compiling process to not damage the productions atcivities of servers. It is all that could be done, but anyway you should plan it carefully, manage and install the appropriate tools and also that could be time consuming.

Maybe could be an interesting idea to have and loan at cost price big Gentoo clusters with all the possible Gentoo packages installed that can compile any specific binary package you need if you ask for it with a query with your system type, compiler, libraries, dependencies and dependencies versions and USE flags. Than the cluster can give back the compiled package and store a copy with its checksum and query specification so that if there will be a new and equal request it can simply give back the archived package. Then to minimize the storing space required and the network transfer, the system should use also binary diffs. Also package signature should be implemented.
This is only an idea (my 2 cents), I don't know if the implementation could be impossible and for which reasons.

I have the opportunity to wor

Anonymous's picture

I have the opportunity to work on a 16 node cluster to toy and experiment on. Of course, I installed Gentoo on a few nodes with an OpenMosix kernel.

I just want to point out that, unless I have miserably failed somewhere, there seem to be limit to the amount of nodes you will need to perform some compilations. The way I see it (although I haven't bothered much in confirming this), it seem an a Makefile will spawn a few objects making, but utimatly will wait for linking them all in one object.

This is like a tree:

It seems that the make system will traverse this leaf by leaf. In effect, on my 8 nodes Gentoo cluster using distcc, I have never seen the whole 8 nodes being used in a compilation process, even though makeopts="-j 32".

So, I think the Makefile system would need to be improved a lot to take efficient advantage of a cluster.

Gentoo definitely needs to sh

Anonymous's picture

Gentoo definitely needs to shake it's "code optimisation" image because that's really not what it's about. It's a flexible distribution that tries to make life good for its users (admittely aimed at fairly technical users). The flexibility includes compiler optimisations, but I have all my compilar flags set to defaults.

Gentoo has a good balance between 'bleeding edge' and 'outdated' packages in the default setup. Compilation times can sometimes be a drawback but this is more than compensated for by a system that allows such easy upgrading. I found it easier to install the odd 'unstable' package on Gentoo than with Debian (mixing stable/unstable), but also less frequently necessary.

An often overlooked benefit of Gentoo is the quality of its user documentation, and the website as a whole. I really feel looked after as I walk through the setup documentation, and it's kept up-to-date. Debian's website by contrast looks hopelessly dated, is hard to navigate and documentation sometimes seems a bit stale. Red Hat have very comprehensive documentation (as you'd hope given the cost of their products!) but Gentoo comes close.

As also mentioned on here, the Gentoo forums are superb. I'm sorry, but mailing lists just aren't a good place for large scale user support. You have to subscribe, and everyone gets a copy of every message. You could split into one mailing list per topic, but I don't want to subscribe to 10 mailing lists. On the forums I can go into whichever forum suits me that day. (Not saying mailing lists are bad, just that forums are the better tool for this particular job).

I might be tempted to try Gentoo out on some production machines at work though (in place of Debian). A distro that welcomes the 2.6 kernel, whose default live CD works on Dell servers (without a 3-year wait between releases for the next batch of hardware support) might be just the thing.

Feel free to disagree with my reasons, but I hope I have illustrated that for most Gentoo users, compiler flags are hardly even relevant.

Seen'em all - Gentoo's the best.

Scott Drumm's picture

Slackware, Redhat, Mandrake - Gentoo win's hands down on the system maintenance and upgrade front. I can remember spending hours trying to fix broken RPM "upgrades" - with Gentoo's Portage database, it's fire and forget: "emerge --update world" does it all.

Now installing Gentoo can be fairly challenging, but once you've got that system up and running, growing it and keeping it healthy is so easy compared to the binary distros it's not even funny. I don't expect to feed my box a distro CD ever again even though I'll be staying fully up-todate on all the latest patches and bugfixes.

Thanks for the article!

Seen them all?

Anonymous's picture

Seen them all? You dont seem to have Debian on the list. I have exactly
the same arguments you make for Debian (minus the need for long time consuming compilations).

It's fire and forget:

sudo apt-get update
sudo apt-get upgrade

I've been using gentoo for ov

Anonymous's picture

I've been using gentoo for over two years now, and I have to say that it's not always "fire and forget".

For a while, when you upgraded the 'shadow' package, it would *automatically* overwrite your system-auth pam snippet, which killed any local customisations you made (such as LDAP authentication). It mentioned this as a warning, but one which skips off the screen after 10 seconds and is near impossible to get back to.

Gentoo is getting a lot better, but you can't just take the attitude that you can "fire and forget" an upgrade. I wouldn't rely on it with debian either, although I'd trust it a bit more.

they are all good

slackware user's picture

Hello everyone, I can see were all having a hard time
agreeing. I would just like to point out that if anyone uses
windows and linux (as I do, slackware + windows xp) you would
notice that SP2 update was smooth and didnt break anything. On
the other hand I have used gentoo and am a big fan of all linux
distributions, but found that gentoo is not that reliable unless
you want to spend hours making fixes, configuring and installing.
Im using slackware 10.0 and not having any trouble.

SP2 didn't break anything?? Y

Winks's picture

SP2 didn't break anything?? Yea, right. I use windoze for one reason on my dual boot...and that is gaming. SP2 broke Everquest, Deus Ex, and a few other apps on my computer. Everquest is the ONLY one that is working still to this day, and the only reason for that is that EQ is still constantly patched and upgraded. As for the other games and apps, I have to hope someone writes a patch for them, or I turn my dual boot into a tri-boot and install WinXP SP1 on it...

Gentoo is nice, better, imho, than the other distros out there. SuSE/Redhat cost money, so scrap those for me, same with Linspire. Debian/Slack seem poorly maintained to me, with documentation thats old, and often out-dated. Gentoo forums are amazing, as are the pages and pages of walk-thrus and how-tos.

95% of the time, if I have a problem with an app, and 'google' it, in the top 10 returns is a page dealing with gentoo, and the resolution of the problem, which MOST of the time is NOT gentoo related. All in all the documentation is excellent.

SP2 upgrade was NOT smooth in any way, and due to the nature of the changes made, patching to SP2 made a big leap forward toward the "needing a clean install" point. Slipstreaming SP2 into you windows install disk is the only way to get it in there w/o drastically slowing down your system.

Installing and maintaining Gentoo is cake, if you know what you are doing. I have NEVER had a dependency issue with portage, aside from one app not installing until I re-merged another, but it told me to remerge it, and worked flawlessly afterward. While installing gentoo for the first time, you can use another VC and edit all your config files while portage does it thing. Set portage_niceness at 19, and compiling causes no slowdown at all, and doing the majority of upgrades at night helps too. I mean, who really cares if it takes 30 minutes or 9 hours to install a piece of software when I press the enter key after the install command, and dont return until 10 hours later...

SP2 was not seamless for me,

Anonymous's picture

SP2 was not seamless for me, either. Installed it on several very different machines in our lab and had the same problem with all of them, invariably, even using different size and manufacturer USB flash drives.

After the SP2 upgrade when a USB drive was inserted it would discover, find, and then when it tired to mount *WINK* the system would reset. Completely. Like I'd just hit the reset button. laptops, desktops, dell, emachine, HP, didn't matter. XPpro is on all our machines, I didn't experience the same issue when I upgraded my wife's laptop which is running XPhome, so that might be something to look at.

When I tried to back out of the SP2 install not only did I waste 2 hours waiting for it to grind back out the systems were unstable afterwards and I had to reload them anyhow.

Lots of people have had issues with SP2. I work for a company of about 50,000 employees and our IT department has yet to implement SP2 in autopatching tools even though MS has had it officially released for quite some time now. The only reason why we install it on a few test machines is because we develop to newer features on XP systems and some of them don't exist outside of SP2. But it certainly doesn't go on any build machines or servers. We can run the development tools for windows on different patch versions than the apps are designed for.

First off, I do use XP too an

Anonymous's picture

First off, I do use XP too and SP2 was NOT a smooth upgrade for me. It hopelessly broke my wireless card's drivers and they didn't work again until the vendor finally released a patch more than a month later.

Second off, Gentoo really isn't unstable if you take precautions and have a feel for what a "dangerous" upgrade is. I've been using it long enough now (> 3 years) that I have a really good idea of what sort of packages might well break things or not compile right before I actually install them. If it's something that is fickle or complex (GNOME, KDE) or risky (gcc, glibc, etc) then it's a really good idea to hold off on installing it for a week or so to make sure all the bugs get ironed out before they hit you. You should also check the forums in the meantime to make sure that people aren't having trouble with the package. The key thing is that if stability is your goal, you really really need to be conservative with your upgrades. Only upgrade things when you have a reason to do so, and be very careful with packages that could mess up your system or compiler toolchain (eg, make binary backup packages from your current install...Gentoo has a tool that does this). This really isn't any different from Redhat or Debian, but you have to enforce this discipline on yourself instead of having it done for you by the package maintainers. The difference is that Gentoo gives you the flexibility to either not upgrade anything for a long time or ignore stability recommendations (mostly based on how new the package is) and easily upgrade to whatever version you want for a specific package if you have a good reason to do so (like you need a bugfix, or want some new feature). I usually am very aggressive with using the latest versions of application-type software that I use, like Firefox and OpenOffice, but very conservative when it comes to library and system tool upgrades. This tends to give you the best of both worlds so that you can have all the latest and greatest application software without risking the integrity of your system by needlessly upgrading lower level packages.

Gentoo can be perfectly stable, but you have to be careful about when you upgrade stuff. Mainly just remember that you don't *have* to upgrade your system can wait and upgrade only when you need to. Gentoo just gives you fine-grained flexibility about what it will automatically upgrade. No other distro that I've used is nearly as good about that.

Gentoo is great for developers

Defenestrator's picture

I just wanted to mention that if you do any development you should have at least one Gentoo machine. I use Mandrake for my main system but there's some code I develop using Gentoo. I basically realized that I just couldn't install a lot of the stuff I needed on Mandrake without doing a complete upgrade (rpm hell) and I didn't want to risk that. I am always able to emerge in the stuff I need for development on Gentoo.


Anonymous's picture

I am quite fond of my SuSE distro, but you hit the point with this article: the pain to install software which has not being packaged by somebody else. The newbie/average user probably won't need it and SuSE or Mandrake will be perfect for them but the ability to be bleeding edge and the easy way to integrate 3rd party code into the system is a must for me. Examples are security network utilities and scientific tools. By the way, I found them all already integrated in the official portage. :'-)

I am going to give it a try but I am 99% sure Gentoo will be my distro for a loooong time. Thanks for the enlightenment!!!

An ex-RedHatian (Vade Retro!), ex-Mandrakian, ex-Slackwarian and almost ex-SuSean (as a private desktop; very cool for enterprise due to an excellent commercial support) and... no, Debian will always be there for my non-commercially supported servers. :-)

The real drawback of gentoo

Sylvain's picture

I think gentoo is a great distribution: being able to optimise the packages, the USE variables for using only the software we want and so on.

However, the only thing which prevented me from "switching", is the _waiting time_ for new packages.

Say you are using the GNOME desktop, and you've set up your USE variables accordingly. One day, you want to burn a DVD and you are in a hurry. So you you do the usual "emerge k3b", but since you did not installed kde previously, you will need to wait an hour waiting for all the dependencies to get compiled !!

For the people who can't accept this situation, gentoo is not a valid alternative.

That's the only bad thing about gentoo I see now. But keep up the good work, for some people this is less a problem.

Not Quite True

Tocano's picture

The real requirement of many Gnome or KDE applications isn't the entire Desktop Environment, but simply their libraries (gtk/qt). Based on the purpose of the machine, I use only one DE per machine, but I always install both libraries. Then I can run pretty much any app that is generally considered explicitly for one DE or the other. Using your example, if you have the qt libraries installed, you can emerge k3b telling it to ignore the KDE dependancy and when it's installed, you can run it in GNOME without problem.

Gentoo works for people who w

Anonymous's picture

Gentoo works for people who want more control
over their system than other distributions
(easily) allow.

In my case, I have about a dozen packages
where I don't like something that one of the
developers (either Gentoo or upstream) did.
No problem. I just change the ebuild and if
I need to, patch the source (and the ebuild
will automatically patch later versions of
those packages).

Adding the excellent documentation to the
capabilities of Gentoo removes any reason for
me to even consider any other distribution.

initial compile time

joseph's picture

I've been thinking about switching from mdk 10 to gentoo. I think at this point in desktop linux you want the very latest versions. The only thing holding me back is the inital compile time (I'm estimating 15-20 hours) and setting up lilo for my dual boot (mbr is on a windows hd). After reading this article i'm considering it more. By the way if anybody wants to get a better (less) guess on the compiling time for a p4 2.8ghz please do so!

Don't go with stage 3. alot

Anonymous's picture

Don't go with stage 3. alot of people will recommend it for people starting out, but i've actually had the least of troubles with a stage-1, plus you learn alot more about gentoo. a stage1 on that machine will probably take....4-6 hours. not including X of course

What I did is install Gentoo

Anonymous's picture

What I did is install Gentoo from my current Linux installation (it was a Slackware, at the time, I believe), in a chroot'ed environment. It worked perfectly, so I had no downtime whatsoever. Zero-reboot install. Effective.

Initial compile time

Anonymous's picture

By the way if anybody wants to get a better (less) guess on the compiling time for a p4 2.8ghz please do so!

Yeah: how about 0 hours?

If you download the stage 3 ISOs, you can get most of the packages in binary form. You can be up and running, including X, without compiling a single package. This is generally what I do when I install Gentoo. Then I do a sync, configure my USE flags for the machine, and do 'emerge -u world' before I go to bed.

You don't even need to do that first system-wide upgrade; you can upgrade individual packages as you want or need them, and your system will, eventually, be entirely up-to date. I find it easier to take the one-time hit on a two-day compile and upgrade the entire system, because system maintenance becomes 'emerge -ua world' once a week or so; however, it isn't necessary.

--- SER

Another Gentoo advantage

Marcos's picture

I started using Gentoo last xmas (after 6 months using Debian). With other distros you have to choice between the apps bundled in the CD (that get outdated pretty fast for my taste), or corrupting your installation using external packages. Debian manages this better, having testing and sid to choose. But Gentoo has a real bleeding-edge package repository, but without having unstable programs being installed here and there.
This year I haven't had any problem with any package, my PC booted everyday and when I had a problem with something it got it fixed in 5 minutes searching the forums, as the problem had been reported and corrected that day. And I update the entire system everyday...
For me, Gentoo is the most stable distro I've ever tried (and the most bleeding edge, perhaps only after SID).
Install Gentoo and never have to worry about crashes or problems connecting to the internet... till you start playing with it to hard ;)

The nice difference between G

Anonymous's picture

The nice difference between Gentoo & Debian is that w/ Gentoo, a Portage subdirectory includes an atomized stable/testing/unstable package list. You don't have to add all these various lines to your apt/sources.list, but you can select directly from portage. Very, very nice.

If debian had something similar, I'd be a lot happier with the package mgt. Still, though, Debian has always been much better than the rpm distros.


gvy's picture

> And I update the entire system everyday...

Some people need to work and not waste time that way.

I know what I'm talking about -- my development system runs daily unstable, home one and notebook -- occasionally updated (like once a week or month) unstable, and servers mostly run last stable with auto updates.

I've been building extra software and backporting unstable packages for almost 4 years of using ALT Linux, being not totally dummy even at the start to guess where the trouble lies with unmanaged software builds (having almost ruined or experimented-over to death some three RH-like systems of different flavours to that date) -- and you know, even then home system managed to boot daily.

Anyway, what's the deal with "bleeding-edge" being marked-out? It's no difference from extra "testing" repo or kind of that which gets used by those risky enough. (hmm... almost, there's something to think about there)

Re: Bleeding-edge?

Anonymous's picture

>> And I update the entire system everyday...

> Some people need to work and not waste time that way.

And with that comment you clearly show that you have no idea what you are doing. I work every day, but I still have an up to date system. Did you maybe think that Linux is a single-task OS? You do know that you can run multiple tasks in paralell on Linux? No? I suggest "Linux for Dummies" as a starting point.

Seriously, the comment you made is just ignorant and something that is not really worth commenting on, but I see it all the time from ignorant users or fanboys of other distros.

I normally run and "emerge -u --deep world" in the background while doing other work related tasks. On rare occasions, I might have 10-15 packages that needs to be updated and depending on the size of them it may take anywhere from 5 minutes to a couple of hours, during which I have been very productive earning money without even noticing that I'm upgrading. Ofcourse, doing this on your 128MB PII 400Mhz machine might be stressful, but then again, maybe a HW upgrade is in place no matter what OS you are running.

Bleeding edge distributions

Herve's picture

I would just like to point out that my experience with Slackware-current is about the same: very stable, easy to fix and [I think] the most bleeding edge of all.

This said, Gentoo has indeed some advantages (package dependencies, for example) over Slackware...

Slackware rocks too

Anonymous's picture

I haven't tried Slack yet, but I haven't heard anything else than good things about it. Perhaps when I have time I'll give it a try.
Also I'm proud Slack leader is healthy again.

Yep. Sure. Absolutely! Jawohl!!

gvy's picture

I haven't tried Windows yet but I haven't heard anything else than a praise aoubt it, and they even make posters for that. Perhaps when I have time I'll give it a try. Also I'm proud Msft leader seems to have dealt with judges again.

What a BS. In this world, you shouldn't cry "rocks!!!" basing on someone's words unless you really trust them (with your -- well, anonymous -- reputation) or you have the same experience to back the claim.

First try administering half a dozen of systems (with at least some of them online) for a couple of years running Slackware, and then we'll get back to this discussion, ok?

Aside to Gentoo users...

James's picture

If you want to use etcat, just

emerge gentoolkit

Slight misrepresentation.

ChojinDSL's picture

"Gentoo's reputation (in large measure pushed by the people who develop the distribution) is that it's for people who want super crazy optimizations"

I mentioned this article in the gentoo forums and some gentoo developers answered that its not the gentoo developers who try to promote this "reputation". There seem to be simply one too many "ricers" out there that just babble about nothing else but speed improvements due to some insane cflags. Most if not all gentoo developers agree that if you go overboard with the cflags, then you definately risk a instability and a broken system, and in that case, you've got no right to complain.
I think a lot of the negative attitude towards gentoo comes from users who try to over-optimize, then complain to Opensource developers that their apps have bugs and stability problems.

But like your article states, if one ignores the hype, gentoo has a lot going for it.
I really like the possiblity of optional dependencies. Don't need mysql support in an app? Set the proper use flags and no need to compile and install it.

One thing you forgot to mention is the forums. I think the gentoo forums are one of the best linux related forums out there. Not too much "RTFM" talk there, allthough one might get to hear a good old, "try and use the search function next time."
Nonetheless, I find that for pretty much any problems I run into, I can usually find an answer in the forums, or post a question and get an answer in a reasonable amount of time.

"crazy optimizations"

James's picture

With my compiler writer hat on, I say good for those people who try "crazy optimizations." If such things break code, then either the code is broken, or the compiler is--no optimization should change the semantics of valid code.

Improved builds

Anonymous's picture

Another plus from Gentoo users; if you download a source package it probably will build due to the hammering it got from gentoo users.

I've noticed this over the years I have been using Linux. Gentoo has improved the situation for everyone.


"crazy optimizations"

Anonymous's picture

Agree with your comment, and the compilers should be fixed. But the truth is that compilers in general have historically been a wee bit unpredictable in this realm. Even compilers for embedded DSPs have this problem. Which kind of seems to defeat the purpose... Anyway, it is perhaps to say that it is the developers (not "mere" users) that should test as many compiler options as possible on as many CPUs as possible. But there again, we just multiplied the amount of regression testing that must be done...

well the thing is gcc has som

Anonymous's picture

well the thing is gcc has some experimental optimizations, like -mfpmath=sse,387 , the man page explicitly says it's not stable yet.

well the thing is gcc has som

Anonymous's picture

well the thing is gcc has some experimental optimizations, like -mfpmath=sse,387 , the man page explicitly says it's not stable yet.

Four minutes later, I have my

Khad Young's picture

Four minutes later, I have my upgrade.
Um. That's good? I'll stick with Debian-based distos. :)

Um. That's good?

pjp's picture

Did you read the whole article? Seems odd to focus on just that part for a reason to say you use Debian.

Experts only?

Anonymous's picture

A year and a half ago my daughter and a non-technical friend "built" the daughter's Gentoo system before she left for University. The reason, quite simply, was that Gentoo may be a pain to set up but it's easier to administer reliably than any other distribution.

This afternoon we head back to deliver her for the Spring semester, PC in the back of the car. Aside from blowing the dust bunnies out and installing a new DVD drive (she now gets courseware on video) no particular updates needed.

I admit that I did have to remote-admin her box a few months ago. Setting up an HP inkjet is sorta ugly no matter how you slice it ...

"Any other"? Oh no.

gvy's picture

It was just another all-covering comment by a person who would have tried two or three at most distros more than for a day, right?

Great they were able to do it and the software helps them -- but why talk about "reliably than any other" when you obviously didn't try to administer *every* other Linux distro?

Solve all your printing problems: use CUPS!

Hervé's picture

Use CUPS! It really is a wonder, even in my MS-oriented company I could install a CUPS server on a machine and all our Linux machines use it. KDE, Wine and probably eveyone else work seemlessly with CUPS. It is the must-have abstraction layer IMO.

Free Dummies Books
Continuous Engineering


  • What continuous engineering is
  • How to continuously improve complex product designs
  • How to anticipate and respond to markets and clients
  • How to get the most out of your engineering resources

Get your free book now

Sponsored by IBM

Free Dummies Books
Service Virtualization

Learn to:

  • Define service virtualization
  • Select the most beneficial services to virtualize
  • Improve your traditional approach to testing
  • Deliver higher-quality software faster

Get your free book now

Sponsored by IBM