Chapter 8: How do I get software for Linux?

Topics covered in this chapter:
The (tar)ball game, getting software that works for your distro
Using to get software
Using to get software
Still can't find it? Use google!
Okay, I got the software, Now how do I install it?!


The (tar)ball game of getting software
At the time of writing this document, Linux is now 10 years old. When the very first Linux kernel was released, there was only Linus and the FSF. There was no Distributors such as Red Hat, Mandrake and SuSE, so any software that you wanted for linux had to be downloaded in source code format, usually within what's known as a tarball. A tarball is simply a file with a .tar.gz or .tgz extension. Tarballs are usually double-zipped files. This means, that they're first zipped up with a tool called tar (de facto unix compression and archiving tool), and then for best compressions sake, the tar file is then zipped up again with gzip (the GNU Zip tool, which is akin to PKZIP for DOS, but better, and does not use ZIP compression.. Note: for Zip/DOS compression, you can use unzip and zip, rather than gzip and gunzip).
Okay, now we know what a .tar.gz. file consists of, we need to know what to do with them.
Well, because Linux is unlike other Unixes, in the sense that it is truly multi-platform-- you can have it running on a PC, an amiga, a Mac/PPC, atari ST or many other types of architecture, the files that you download or install must be compatible with the CPU that you are using. This means a) compiling the source from scratch on your own machine (using .tar.gz tarballs), or using pre-compiled binaries made up for your exact architecture (.bin.tar.gz or .rpm or .deb, etc).
Naturally, compiling source code can have the odd compile error or two, and that requires you to fix them. It's not much fun, and Linux is slowly trying to get away from tarballs for this reason. On the good side for tarballs, they're clean, they are optimised specially for your system once compiled, they are safe (as in, you can see their source before installing them, to find out if there is anything that looks like it could compromise your systems security).
On the other hand, you have pre-compiled binaries that are usually packaged. These are usually made up for a particular architecture, such as ix86 (PC/Intel & Compat.), ppc (macintosh etc) and alpha (Sun Sparcs). With Red Hat based distros (Red Hat Linux, SuSE, Mandrake and Definite amongst others), packages can be downloaded in RPM (Red Hat Package Manager) format. For Debian based distros (Debian Linux, Caldera OpenLinux, Storm Linux amongst others) DEB packages are available.
Currently, RPM based distributions are the most popular in the linux market and are widely used to install software packages of all types every day.

Obtaining tarballs, RPMs and DEBs from is possibly the de facto linux repository. It's a open source haven for the linux user, with hundreds of software titles being added or updated every single week, on a daily basis. in action. Click to enlarge.

If you know the particular software that you are wanting, you can type in the software's name, or perhaps it's purpose in the search box at the top left of the page. However, if you don't quite know what you are searching for, you can browse by category. Pressing the browse link at the top middle of the page will take you to the Freshmeat appindex where literally thousands of applications, utilities, games, multimedia tools and well, everything you could possibly think of is neatly categorised. When you find the relevant category or the relevant search result you need, click on it's title for a page on that program. It'll give you links to the authors homepage, quick links to download it in (usually) various formats, including tarballs, debs and rpms.

Using to get software
RPMfind is a haven for all RPM based distribution users. If you use Red Hat Linux, SuSE, Mandrake, Caldera, YellowDog, Polished Linux, Rawhide Linux, ASP Linux, Falsehope, Connectiva Linux, Kondara Linux, MadeinLinux, Trustix Linux and many many more RPM based linux distros, then RPMfind is the place for you.
As soon as you go to the site, you are presented with a search box. Type in the name of the rpm that you want and zoom! it appears in your screen. Pick an RPM from the list based for your distribution (if there is one), and download it.
There is also a search by category, index, vendor and group search (amongst others). Some of these indexes are handy, but are quite big and can take quite a bit of going over.
    Tux's Tip: After using freshmeat and rpmfind for a while, you'll find it's easiest to find what you're looking for on freshmeat, and once you know what it's called, go to rpmfind and download it. For example. I could go to freshmeat, look up web servers, find out that I needed a program called apache and then go to and key in apache in the search box. Et Voila!'s simple but effective interface in action. Click to enlarge.

Still can't find it? Use google!
It's happened to the best of us, and in time, it will happen to you. You'll probably be looking for an RPM package, but you can't find one on the authors web page, nor on You can only find the tarball and you just can't find it anywhere.
Well, you would be surprised at who actually makes up these RPM packages from tar files. Mainly you'll find that distribution vendors package them, but you'll find other people out there doing it for the hell of it, to help you and the rest of us out. This generally happens if the program is a dog to compile as a tarball.
The first place to check for a rpm, if you can't find it, is on the web site of the distribution vendor. So, if you have Linux-Mandrake, pop down to and download the RPMs from there, but if they're not there, then is not only the best search engine in existance, it's also the best at finding those odd web pages that you could never find yourself, the one that has that all importand link on it to the RPM you want.

Google searching for a GNU napster client, Gnapster. It's been pretty sucessful! Click to enlarge.

Okay, I got the software, Now how do I install it?!

A- ha! For that, you'll need to be reading Chapter 9: How do I install software?