I often find myself having the urge to switch distros. I have to think most Gentoo users feel this from time to time.
I imagine all the Ubuntu users sitting around giggling as they flawlessly and easily re-install their whole system in 10 minutes via a single apt-get, while I'm sitting here
emerge -uDNaving and my Gaim beta fails to install after 25 minutes because it depends on
x11-drivers/xfree86-input-mouse which failed with a compiler error because some random xorg header file is missing. (The latter happened to me recently.)
When I take a step back and look at things though, Gentoo works. As human beings we tend to remember things that deviate from the norm, and forget the many many things that don't. We remember the dozen failed package installations we had in the past 6 months. We forget the 800+ that worked. Behold:
equery list -i | wc -l 873
873 packages. And they are ALL WORKING. Some of them are crazy beta or pre-beta experimental things. Many of them are unstable packages from Portage. Some of them are packages that don't live in the Portage tree at all. Some of them are ebuilds I wrote MYSELF. And they all, somehow, work. Why in the world do I get the urge to change distros when ONE package fails to compile?
Not only do they all work, but they are all managed by Portage. I have nothing on my system that is installed in any way other than via an emerge command.
Gentoo is good because everything is installed THE SAME WAY. It's installed in the most time-intensive, laborious, and likely-to-fail way possible, but it's all the same way. There is almost nothing (except some closed-source apps) that can't be installed by compiling them yourself, and Gentoo is set up to do exactly that; meaning that Gentoo is set up to be powerful enough to install ANYTHING without going outside the system.
Look what happens when you want to install something a bit non-standard on Ubuntu. Ruby on Rails for example. Looks like they have to compile it too. And Ubuntu is NOT set up by default to be able to compile anything, so far as I understand.
From my brief trial of Ubuntu a while back, this is exactly what I remember. What are the dependencies for building a Perl module? GCC I imagine; whatever headers GCC requires; lots of other stuff I have no idea about. And what versions of those things do I need? I have to search out and install the developer tools, before I can even attempt to install the CPAN module I'm after. It's dependency hell. Hello 1992, nice to see you again. In Gentoo I know I already have the tools required to build most things, because they've tested extensively in the process of getting my darn computer working in the first place. I have lots of CPAN modules in Portage; I have g-cpan; and I know that installing CPAN modules via a
perl -MCPAN -e shell works and that those modules behave nicely beside Portage-installed modules.
Talking to some Ubuntu users and reading the forums, in general the grass does not seem all that much greener in Ubuntu-land. Just a different shade. They have problems too. They are simply different problems. It's like the choice is: binary distro = common apps are easy to install, and non-common apps are anyone's guess; or source distro = Everything is a slog, but it's the same old slog every time and you kind of get used to it or good at it. Both of those options suck, when you think about it. But both have advantages too.
Now I'm rambling. I'll stick with Gentoo for a while longer, is the moral of this story. It may suck, but everything else sucks too.