Derek Bodner’s Blog



Geek talk, sports and ramblings

Gentoo

I recently installed Gentoo on my desktop at home. The installation went fairly easily (although obviously time consuming), but as I sat there watching lines fly past my screen during an emerge, I realized how much I have a complete love-hate relationship with Gentoo.

For a server system, I absolutely love it. I’m not sure I’d want to manage a fleet of 200 Gentoo servers, as doing updates would be a full time job in and of itself. emerge -Du world is certainly not a process that I would ever want to automate, and due to the length of time a source-based meta-package can take, it’s a lengthy process to do hands-on. A rolling release definitely presents its own set of problems, and without backporting security fixes, maintaining your own “stable” fixed portage overlay is virtually impossible. But for my personal servers, I wouldn’t even consider using another distro. I’m at the point where I cringe working on a binary-based system. The power of portage is really made for server situations, IMO. Need to recompile Apache with LDAP support? Add one line to package.use, and emerge. Need xsl support in PHP? add xsl to package.use, and let emerge do its magic. Need to roll out multiple servers with the same Apache/PHP/MySQL configuration? It doesn’t get easier. In 5+ months of working on primarily Gentoo based distributions, I’ve had to compile something by hand I believe once, and have not lost any one ounce of flexibility in the process. That doesn’t mean there aren’t ways portage can be improved (reverse dependencies, for one, and the fact that there is no security update. When a vulnerability is released, the fix is upgrading to the latest version), but most of these can be overcome once you get to know the nuances of the tools. It has its weaknesses, but I haven’t met a distribution that didn’t.

Now, on the desktop side is where I have my love-hate. I love the idea of having that much control over my system. I’m enticed by it. It’s a great option to have. However, sometimes I wonder if I truly need that much control. There’s a tight line between control, and micromanagement.

On a server, the compile times don’t bother me all that much. Once a server has been setup, it’s not too often major software is installed, or even recompiled. The time it takes portage to recompile PHP when a flag is added isn’t more than a few minutes (and can be completely eliminated by setting up distcc or a binhost), and that’s a small tradeoff for the flexibility it provides over binary systems. On a desktop, however, things are different. The flexibility I find I don’t need as much. Sure, I might be able to get a leaner footprint, but my home machine has more power than I need, and is stocked with 4 GB of ram, most of which I never come close to using. While it’s impossible for PHP to come installed with every possible option (as you’d have to install the dependencies for every possible option), the desktop environment that Xubuntu ships with provides pretty much the Xfce I’m looking for. Sure, I want to customize it, but for the most part I don’t find myself needing to compile in missing options. I ended up installing the binary of oo.O most of the time on Gentoo, rather than wait the 4 hour compile time that could be coming my way. And I find the installation of a DE can be a little bit too much micromanagement than it’s worth. Forget an xcomposite or xinerama USE flag, and you could be left a little perplexed. If I want to use rhythmbox, I like being able to apt-get install rhythmbox, and have it seconds later. If I have something I need right away, it goes from being an annoyance to being a halt on production.

That being said, there is the geek in me that’s always intrigued by the benefits of Gentoo on my desktop machines. As I said, it’s a constant back and forth. I do see how the power of portage can be a great tool, especially when you have your system that, for the most part, is up and running how you like it. The thought of having my desktop completely customized exactly to my specification has its perks, even if I may not have the time for it.

This weekend I had one of my “love” weekends for Gentoo, and I re-installed my desktop machine. I bootstrapped the system Saturday afternoon, set it to install X and Xfce, then went away for the day. Came back at night and it was finished. Installed some of my most used apps over night, and it was a fairly painless process. Had to recompile my kernel a few times, as I left some things out initially (stupid little things like samba support, etc, that were completely user error), but the installation process was a fairly straightforward process, for a Gentoo install at least.

Oh, and it deserves mentioning, the Gentoo documentation is fantastic. If you are new to Linux, and you’re willing to invest time, you WILL learn something from the Handbook. The wiki and forums are both good as well.

We’ll see if I stick with it. This is probably the 3rd or 4th time I’ve installed Gentoo on a desktop machine, and in the end I typically go back to a Debian-based distribution (either Debian itself or Ubuntu, I’m not a KDE fan so I tend to stay away from pclos). As I’ve said, I love it for a server (I’ve installed it on about 35+ servers, both at work and personally), so we’ll see if I can make it stick on my desktop.

This is what I absolutely love about Linux/BSD’s, and Free Software in general. There’s the choice. Ubuntu’s great, because it provides a very good out of the box environment that you can get to in 15 minutes, one that you can still customize to your hearts content. Something that “Just works”, and still maintains a reasonable level of flexibility (at least compared to Windows). You can tell the level of detail they’ve put into the Desktop crowd, and it shows. On the other end of the spectrum, you have a distribution that you have complete and utter control over, but that takes a little bit of patience, and you definately have to RTFM. The fact that I use both distributions daily goes to show how great it is. Both products have a very legitimate need, fill a very legitimate void, and the same can be said for quite a few others (Debian, Slackware, Fedora, FreeBSD and OpenBSD each provide very unique strengths and weaknesses). There’s no right or wrong distribution, it really is the right tool for the right job. There’s no right or wrong approach to building a distribution. And there’s no one distribution that’s clearly where all the future development is happening. Ubuntu and Gentoo are probably the two distributions I’m keeping an eye on most right now (Ubuntu for the progress they’re making in providing a usable desktop, and Gentoo because of the sheer flexibility). Then you have Fedora, where while I wouldn’t myself want to use it either for my desktop or a server, is where some truly innovative development is happening. And of course OpenBSD, which has a great niche from a security standpoint. And the upcoming release of FreeBSD 7 is very, very interesting, to say the least.

Good times. Good times.

3 comments

3 Comments so far

  1. Derek Bodner November 5th, 2007 11:20 pm

    One thing I did have a problem with was redrawing screens with terminal windows displayed was very, very slow. Whether this was opening multiple terminal windows, or switching to a workspace that had terminal windows in it, and happened with either xfce4-terminal or gnome-terminal (but not aterm or Eterm). I thought this might have been related to vte, so I tried upgrading that to 0.16.9 (which is flagged as unstable in portage), then downgrading it to 0.16.6 and even 0.14.2, and the lag was still there. So I put vte back to 0.16.8 (what it was installed at), and downgraded xorg-xserver from 1.3.0.0-r1 to 1.3.0.0, and it was fixed.

    I know it’s really an xorg-xserver problem, but you probably shouldn’t get this as the default package set when you emerge xfce4.

  2. escapenguin November 5th, 2007 11:42 pm

    Stability and compatibility are most important on fast hardware right now. Binary packages are also a huge plus in production as you pointed out. I dreaded having to drop OpenBSD for the Fedora variant I’m running right now, BLAG, but I needed the samba support for work. There were just too many instances where I’d have to poke around on a share for something someone asked me to grab, and all I had was smbget and the supportvps.

    Also, OpenBSD doesn’t coexist with other operating systems on the same drive well. Being asked to dual-boot to add more available workstations when I’m gone was the nail in the coffin. I hope to test the latest release and see if it’s a little more compatible. I love Linux, but the lack of quality control infuriates me more often than I’d like.

    I’m stressed out enough as it is.

  3. Derek Bodner November 6th, 2007 12:07 am

    Yeah, the value I see in portage isn’t really the “it’ll be faster” reason that a lot of Gentoo’ers claim (there may be a performance benefit, but on my desktop, it’s nearly negligible), but because of flexibility. Particularly on my personal servers, as I’m not sure I get nearly as much benefit on my desktop machine to make it worth the time (especially on my home desktop, where I’m not physically at all that much). And these servers are more for development and testing than a production environment. It’s one thing to use it to setup things like this server that runs my blog, a few other sites, and development stuff I do, or a samba server I have setup for my house, and another to use in a production environment. Even at work, our Gentoo boxes are almost exclusively either development environments or specialized services (mail servers that only run exim, a dhcp server, etc).

    That’s not to say I wouldn’t run it in a production environment, I just haven’t been completely convinced.

    I really need to get around to using Open/Free more. I had to use a server that had FreeBSD on it a couple weeks ago, and it was slightly different, but nothing that a little reading and practice wouldn’t clear up. I’m particularly interested in trying the next release of Free on my desktop. We’ll see.

Leave a reply