Let me start with a controversial statement: Installing new software is almost always easier on Linux than on Windows or the Mac OS.
I can already envision the angry e-mail. It'll come from the folks who write each month, certain that if they use enough capital letters and exclamation points, they'll convince me that LINUX SUCKS!!!
But I'll say it again: Installing new software is, in most cases, easier under Linux than under other operating systems. I've touched on the simple reason why many times in this column. On most Linux systems, an app called the package manager takes care of software installation and removal.
Package managers have become both more powerful and more friendly in recent years; under Ubuntu Linux, if I want to install an instant messenger, a DVD burning tool, or pretty much anything else, I don't start by searching the Web or a software downloads site, as there's no need. I open my package manager (Applications, Add/Remove... in the Ubuntu menu bar at the top of my screen) and search for the software I want. When I find the right application, the package manager downloads it.
The package manager also downloads any system components the new app requires. Remember, Free Software is an ecosystem where all the code is shared, so new apps are almost always built atop existing foundational layers. The package manager tracks all those layers and the complex relationships among them, grabs everything required, and installs the whole kit and caboodle. All the heavy lifting happens behind the scenes, and after the magical orange smoke disappears, your "new" app is ready to go.
Getting the Latest Software
It all sounds great, and for the most part, it is. But Linux's way of doing things has one shortcoming. An example will illustrate it best. The trusty ThinkPad I'm writing this column on is running Ubuntu 6.06, the "Dapper Drake" release. Rhythmbox version 0.9.3.1 had been the default app on this machine for managing and listening to my digital music. Though it wasn't a bad tool, the latest version, 0.9.6, came out recently with new features I desired. I wanted it.
Herein lay the problem: My package manager knew of only version 0.9.3.1, which had been tested and specially crafted (by a so-called package maintainer with the Ubuntu project) to rock on Ubuntu 6.06. In other words, 0.9.3.1 is the only version of Rhythmbox that Ubuntu 6.06 officially supports, so it's the only version I could grab via the package manager with point-and-click ease.
Not a SETUP.EXE in Sight
In the Windows world, if I want a newer version of an app I already have, I usually just download the new version's SETUP.EXE file and run it. But the Linux world has no counterpart to SETUP.EXE. If I wanted Rhythmbox 0.9.6 on my Dapper Drake machine, I had two choices. The first was to wait for Ubuntu's next release. The entire OS, along with all of its packages, is updated twice a year. So whenever Ubuntu's Edgy Eft release (aka Ubuntu 6.10) came out (it may already be out by the time you read this), I could tell its package manager to upgrade me to the latest, greatest Rhythmbox.
The second option was to do an end-run past the package manager and perform all the dirty work myself, compiling my own copy of Rhythmbox 0.9.6. This is a far more complicated task than running a SETUP.EXE. Compiling apps can drive a Linux newbie to madness, and it's this madness that spawns letters in my inbox like "NO SETUP.EXE? LINUX SUCKS. PEOPLE DON'T HAVE TIME FOR THIS GARBAGE."
Well, much as it pains me to admit it, the reader has a point: People don't have time for this, usually. But to be fair, in the long run Linux's approach saves me time. For the most part I stick with the apps my package manager provides, and everything always Just Works. Twice a year, I get fresh new versions of every app I use, hassle-free, courtesy of the package manager. I defy anyone to argue convincingly that this doesn't kick ass.
But enough cheerleading. I'm going to demonstrate that the second option I just mentioned--custom-compiling new versions of apps you love--really isn't all that difficult once you get the hang of it.
What makes compilation difficult to learn is the wide variety of problems you can encounter. So, in an attempt to teach by example, I'll spend the rest of this column showing how I compiled and installed the latest versions of Rhythmbox and Gaim (the venerable Free Software IM client) on an Ubuntu Dapper Drake machine. The steps I list will be very similar on other distributions, and I'll point out important differences where I can. (If you have experience with a distribution I'm not specifically referencing here and have tips to relay to the Free Agent crowd, please add them in the comment section below!) Warning: This is a detailed explanation, so be prepared to spend some time reading.






"Free Agent: How to Compile Free Software Apps" Comments