Why is Ubuntu so popular? It’s not the fastest flavor of Linux, the smallest, or the most secure. Gentoo, SliTaZ, and OpenBSD beat it in these categories. Ubuntu hardly changes from update to update, it just adds a new theme or two. You could say Ubuntu has many drivers, and that’s true, but so do Knoppix and OpenSUSE. What distinguishes Ubuntu from other flavors is its packaging system.
Ubuntu is based on Debian, so it uses a package manager called aptitude. This system allows users to easily add and remove software. Without a package manager, Ubuntu users would have to compile and install software from source code.
This is exactly what portage does in Gentoo. Portage searches for source code online, determines its dependencies, and begins compiling each piece. This process can take several days if, for example, a user installs Gnome or KDE. Compiling code allows Gentoo users to customize their software for their hardware, so it runs faster and installs lighter.
The downside to Portage is that users spend a lot of their time managing their software. Ubuntu users tend to be new to Linux. They are scared easily by complicated installation procedures (some don’t even know how to use apt-get). They just want Linux to work, which means:
- Software installation and removal should be simple operations.
- Drivers for common hardware should already be installed.
- The package manager should require little user interaction.
This is exactly how Ubuntu behaves. Users specify software to install, such as ghc6 (Glasgow Haskell Compiler). Aptitude finds its dependencies, then downloads and installs everything. Aptitude typically requires users to press [Enter] to confirm installation. Once this completes, users can run Haskell.
Back to Portage. Before Portage can be run with emerge, users must edit their USE flags to customize which features are enabled. If they forget to supply important flags the software will be unusable and they’ll have to start at the beginning. Example: If you forget to include ext2 in your kernel, Gentoo will be unable to mount ext2 partitions.
Once the correct USE flags are set, Portage can start looking up dependencies. For KDE, there are many. Portage will display the long compilation process to the user, who could have been tweaking a LAMP system in Ubuntu by now. The Gentoo users waits for days, and then…
In my case, KDE installed but failed to run. In addition to installing it, I had to configure it, which I don’t have the time or knowledge for. I figured startx or startkde would solve all my problems, but they didn’t, and xorgconfig failed to run. So I began looking at other distributions.
With VMware Fusion in hand, OpenSUSE was quickly setup. YaST is apparently like Yum but better. Oh really? Minus a point: running yast as a normal user results in a generic error, instead of a message advising running it as root. YaST is meant to be run in graphical mode anyway.
At this point I began running out of distributions. Most Unix flavors are based on Debian, Red Hat, Gentoo, or FreeBSD. Out of the depths of obscurity rises a more secure, more stable version of Unix called Minix. “Maybe microkernels are worthwhile after all,” I think and download a copy.
Minix uses packman for, what else, package management. This thing is even worse than Portage. Gentoo users simply type emerge ghc6 to install Haskell. In contrast, Minix users use packman as a kind of Chinese menu, ordering software by number rather than name. No dependencies are resolved, either.
At the moment, Minix is focusing on the kernel rather than utilities. They’ll likely get a real package manager someday. By now, I’m depressed about the state of operating systems. I haven’t even discussed Windows’s next-next-next-next-agree-next-quit methodology or Mac’s drag & drop methodology. It’s a wonder people try out software at all.
Ubuntu shines for this very reason. Whereas other operating systems punish users for installing software, Ubuntu rewards them. Whereas other operating systems are filled by the dead carcasses of uninstalled software, Ubuntu remains clean and lithe. After evaluating dozens of distributions for potential in a minimal hardware system, Ubuntu is the only one I would consider. apt-get is my buddy, and I wouldn’t trade him for any other package manager. I just run apt-get install some-package and everything works, without configuration, without USE flags, without ordering from a menu.
Update: Fitzcarraldo recommends Sabayon Linux, based on Gentoo. Instead of compiling everything from source, Sabayon uses pre-compiled binaries. Instead of taking days to setup, Sabayon took minutes. As with Gentoo, Sabayon prefers KDE.
There were several minor hurdles for setting up Sabayon: the default resolution was ludicrously high, so high that moving the mouse from one end of the screen took a few strokes. The minimize/maximize/close buttons are way too small. The default theme, Oxygen, uses an ugly pastel layout that runs titlebars together with the rest of the windows. As a result, it’s hard to click and move windows, because there’s no way to tell where the titlebar begins.
More hiccups include the monitor size and rotate tool. This thing runs as a tiny daemon in the bottom right. I didn’t see it there for a while, so I thought it had crashed. As with more popular distributions, Sabayon fails to include a terminal shortcut on the desktop or the panel. You have to hunt for it in the Utilities menu.
Once a terminal was running, I ran df -h to estimate available free space. Sabayon is hefty, weighing in at 5-6 GB. Initially I used a virtual hard drive of 8 GB, but the installer complained. Another bug: the installer refused to let me return to the partitioner to provide more free space.
Notice that I haven’t even mentioned the package manager. It’s called Sulfur, and it sure stinks! It’s like a retarded version of Synaptic. There’s no way to view currently installed software without trudging through the entire universe of software. The first five times I tried to open Sulfur–Sabayon notified me many times to apply updates–it complained that it was already running and could not be allowed to interfere with itself. Synaptic, the Update Manager, and apt-get share this feature in common in Ubuntu, but they don’t lock each other out when none of them are running! This annoyance alone would normally make me call it quits, but I perservered.
Eventually, I opened a terminal and typed emerge ruby as a test. It complained that I wasn’t root, which is the right and proper thing to do. An su later, and I was root. I ran emerge ruby again. This time it said it could never satisfy my request. Phooey on Sabayon.