When I first used Gentoo, it was after I had been using Fedora Linux already. I saw a great deal of potential in Fedora, but I found it too bloated. I started stripping things out, but I figured then, as I believe now, that it is easier to start minimal and build up then to strip out what is unwanted. The other thing I knew was that RPMs were unacceptable. I was able to break the system way too easily. By nature, I am a tinkerer and I can crash anything once I fiddle at a low enough level, but I was able to break down the packaging system too easily. A couple guys at school told me about Gentoo. So, I started using it. As advertised on its website, it took a long time to build all of the necessary components. Not really knowing what I was doing, I did things the Wrong Way (TM). When the mess got big enough, I switched to Slackware. After doing a bit more reading (and managing to get lost in my own Slackware box), I went with Gentoo. The point here is that my time with Gentoo has been interspersed with Fedora, Slackware, and Ubuntu. In short, I know what it's like to jump into Gentoo and get in over your head. Also like with Linux, I could see the power and potential from the beginning so I hung with it and now I am here to share my wisdom with those who are used to the more friendly side of Linux.
First, the thing you have to understand is that Gentoo is, in essence, a semi-automated Linux from scratch. Gentoo's idea of eye candy is having the prompt colored by default (which is cool). As time has gone on, the Gentoo team has tried to introduce an installer written in Python to take some of the pain out of this process. I must say, as much as I wanted to love the installer, last time I tried it I couldn't get it to do jack. It was quicker and easier to go the old-school way. With that in mind, the first thing to do is to sit down and (preferably on paper) write down what you want to be on the machine because Gentoo's philosophy is, as much as possible, if you don't ask for it you ain't getting it. We'll come back to this point shortly.
Secondly, USE flags. They are, with portage, the most touted feature of Gentoo and well they should be. They offer unprecedented flexibility and power. "With great power comes great responsibility" a tired old phrase in our Spiderman infested world holds true. Good USE flags are the difference between a fast, stable system and a buggy crashing one.
Thirdly, READ THE MANUAL! Like probably every one of you, my first instinct is to think that the stupid manual is overrated and I will figure it out later. Well, you won't get away with it here. Read the manual every step of the way. It'll save your life.
So, with that in mind, here are my tips for getting started (note: at least skim the handbook first; this will all make more sense then):
- Go to the USE flag reference page and read through the list. Add the use flag for any functionality you will want throughout the system. So, for example, if you are setting up a desktop system, you will almost certainly want the X use flag throughout the system.
- Unless your goal is to experiment with multiple kernels, pick your kernel and install that kernel and ONLY that kernel. Since I was doing all of this on a laptop, I wanted hibernate capabilities, so I needed the Suspend2 kernel sources. In one of my earlier installs, I went with a default not thinking about it and got myself into trouble later when I had multiple packages built against different kernel sources.
- If you are using genkernel this won't matter as much, but otherwise figure out what you will need in your kernel before configuration. What kinds of power management will you want? Do you want a splash screen available? Do you have wireless cards (even if you use ndiswrapper, you will need to compile some support into the kernel)? What hardware will you be using in general? Have answers to questions like this and you will be able to get things done much cleaner the first time around.
- Install Gentools. You'll love it.
- Install eix. Searching for packages and displaying packages is so much faster.
- Before emerging anything, check the use flags. There will be packages for which you want functionality that is not necessary on the hold or functionality you will want to strip out. Check the use flags first and make adjustments as necessary to packages.use
- Keep the system up to date. It makes that whole compile from source paradigm less painful. If you do it daily, you will usually have 1-3 packages, usually smaller libraries, that need upgrading. If you do it once every few weeks, you will tend to have a bunch of the smaller builds plus one or two of the bigger ones. Just schedule it and keep the system up to date.
- Prowl the forums. I admit I don't do this as much as I would like, but you never know when something interesting will pop up.
- If you have issues, google, the gentoo wiki, and the gentoo forums are your best friends. With a little skilled searching, you will often not even need to post anything yourself.
Well, that's about it. I'm sure I'll add more as I think of it.