Sunday, April 02, 2006

Ubuntu: The Differences

So what are the differences between Ubuntu and Fedora Core? I mean, Linux is Linux is Linux, isn't in? Well, not quite. Since there isn't really a standard definition of what Linux is (though some have tried), each distribution is free to put programs, libraries, desktop management, etc., wherever they want. True, if someone tried to move the ls routine from /bin/ls to /usr/local/share/ls there'd be Hell to pay, but otherwise distributions are pretty free to move things around.

The main differences between distributions, however, concern which programs (hereafter "packages") are included with the distribution, or made available to users; and how the packages are, um, packaged.

Fedora, RedHat, Mandriva, and others use the RPM Package Manager. Gentoo Linux distributes its packages as source code which you compile on your own computer. So does Slackware, though the mechanism of getting the files to the user is different in the two cases. Ubuntu, like all descendants of Debian GNU/Linux, uses the Debian Package Manager. The only thing we really need to know about the differences here is that if we wanted to install a package foobar in Fedora, we probably would have entered

# yum install foobar

While in Ubuntu it's

# apt-get install foobar

(Extra points for those of you that spot what's wrong with that last line.)

Now the default installation of Ubuntu will get you access to the internet, not to mention 2.0 to work with various kinds of files. But there's a lot that is simply not installed by default.

Once we've figured out what's not installed, usually by typing in a command and finding that it won't work, then we have to figure out where to get the program and how to install it. Of course, we can always download the source and compile it ourselves. No, wait, neither the gcc compiler nor make is installed under Ubuntu by default.

So where do we find the extra packages for Ubuntu? We can find them using the command

$ sudo /usr/sbin/synaptic

(enter your login password when asked).

This brings up a graphical interface which has a list of programs available for installation. When you click on a program name, you get a description of what it does. (Note for command-line enthusiasts: while there's a yum list command to give you a list of packages to install, so far I haven't found the apt-get equivalent. It ain't apt-get list.) Click on the package to install it. If this package depends on other packages, those packages will be added as well. If you click on a package which supercedes another program, the old program will be removed. It's fairly simple.

Almost forgot: the Ubuntu packages are divided into three repositories: "Breezy Badger," the whole damn thing, "Security Updates," and "Updates," which should be fairly obvious. "Breezy Badger" has four separate parts, "Officially supported," obviously; "Community Maintained (Universe)," programs that Ubuntu users fix up to work with Ubuntu; "Restricted Copyright," programs that are available freely but only in binary form, and "Non-free," programs that just aren't free software. I want to have all of these options available. To do this under synaptic, select Settings>Repositories>Add and click on the parts you want to see. Note that if you just want Security Updates you can fix that here as well.

Since this post is getting fairly long, I'll stop here. The next post will have a list of the packages I consider essential to running a decent Linux box.