How software is packaged up in Linux
Locating the software that came with your distribution
Using rpmfind.net to get software
Using Freshmeat and Sourceforge to get software
The (tar)ball game, getting software that works for your distro
Still can't find it? Use google!
Okay, I got the software, Now how do I install it?!
If you are a Windows or Mac user, you will be used to software being delivered to you in binary format, that is a program that is ready to run by double-clicking on it. A binary has already been compiled (a process done by the programmers of the software, to make it ready for your Operating System).
Linux also uses binary format for most of the software you obtain, but because Linux software is made up of so much Open Source software, it can also comes in source code (programming language) format. If you wanted to, you could go in and edit the code to make it do anything you wanted it to, however most people are content with simply compiling it on their own PC and using the binaries that the compilation makes.
Why would you want to compile source code applications?
- You can see what the software is doing - make sure there are no nasties in the software (if you have the programming know-how to understand the code)
- Compiling it will most likely optimise it for your PC, so that the software will run at it's utmost performance
- If the software you want has not been specifically released for your platform, eg software was written for PC, but you have a Mac, you can often compile source code (or port it) to your platform
Linux is all about choice, so more often than not, you will be able to choose whether you want to install a source version of a given piece of software, or whether you wish to install a binary version of software.
Why use binary at all if source code is so great?
- Installing binary applications is usually done at the click of a mouse, no nasty code anywhere in sight - no keyboard commands etc.
- Some source may not work correctly with your distribution, as your linux vendor may already provide a binary equivalent
- Most Linux distributions now provide most of the software you would ever need within the distribution it's self, or on an Internet repository, so the need to go out and download source or binaries is far lesser today than ever before.
Software in Linux today is packaged up for easy installation in most cases. The most common formats are as follows:
|Package Name||Example Distributions that use this type|
|.tar.gz / .tar.bz2||Gentoo, Slackware, Vector|
|.deb||Debian, Ubuntu, Linspire|
|.rpm||Red Hat, Fedora Core, SuSE, Mandriva|
The next section goes on to demonstrate where you can obtain software for your Linux sytem, in respect to each packaging system shown above.
Linux has come a long way in recent years to make locating and installing software an easy process. Historically, Linux suffered from two things:
- A centralised approach to obtaining software was not in place
- Dependency Hell: a term used mainly in RPM based distributions in where you had to download a bunch of other software (often libraries) in order to get the software you wanted in the first place, to run
Each distribution has it's own way of installing software, but thankfully they are generally straightforward and are centralised either around the RPM or DEB packaging system:
The great thing about Linux today, is the stark contrast to the way users obtain software between operating systems like Mac OS or Windows.
With Mac OS and Windows you have two choices when obtaining software:
- 1) Purchase it in a store, or,
2) Download it from the net
Either way, you will need to go through a seperate installation process for each piece of software you purchase. This is not the case with most Linux distributions today. With specific regards to distributions such as Ubuntu and Linspire (Click-N-Run), you simply start up the Package Manager (eg: Synaptic, as shown above). Click on the title you wish to obtain, and it is downloaded from the net, installed and configured for you automatically. Just think - No going to the store, no InstallShield Wizards, No crazy config files, just click, and go!
This almost sounds too good to be true, but it is almost a perfect system in a modern Linux distribution. Only a few exceptions exist; mainly with RPM-based distributions:
For example, Fedora Core is a well organised distribution, notorious for it's long history in the Linux arena, as well as generally well-thought-out approach. However, Fedora and other similar RPM distributions suffer from the fact that if the software title you require is not provided on the CDs that came with the distribution, then you will have to obtain it from elsewhere. This can sometimes (but to a lesser extent these days) lead to the nasty situation of "Dependency Hell".
Debian based distributions (Debian, Ubuntu, etc) generally have access to the Debian Universe & Multiverse, which put simply is a vast Internet repository of almost all of the Linux apps you could ever want. The best thing about this repository is the fact that it plugs in directly to the APT package system (which automatically downloads software and any other dependent software), and ultimately to your Package Manager, eg: Synaptic.
It is for the reason that you may find yourself one day in a situation where you need to find software from an alternative source than from your distribution, that the rest of the chapter exists. The rest of this chapter discusses where you might obtain software in the .tar.gz and .rpm format, that should (but with no guarantees) work with your distribution.
One final note which is very worthy if you are using Fedora Core, or similar is YUM. Yum is the Fedora equivalent of APT. Whilst it does not contain such a large software library as the Debian Universe/Multiverse, it will resolve problems with dependencies.
Check out This Link for more information on YUM.
RPMfind and RPMForge are just two of a number of good sites for all non-distribution specific RPM packages. If you use Red Hat Linux/Fedora Core, SuSE, Mandriva, Caldera, YellowDog, ASP Linux, Falsehope, Kondara Linux, Trustix and many many more RPM based linux distros, then these are great places for you to find software, however, be warned that you should use this software at your own risk, as it will likely not have been tested with your specific Linux distribution.
As soon as you go to the RPMFind, you are presented with a search box. Type in the name of the rpm that you want and it generally returns a large amount of results.
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.
Both of these sites, part of the OSTG network, are open source havens for the Linux user, with hundreds (possibly thousands) of software titles being added or updated every single week.
|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 rpmfind.net and key in apache in the search box. Et Voila!|
The (tar)ball game of getting software
Most of the time, you will find that the .tar or .tar.gz format is used to zip up source code format software, a .tar.gz file is often referred to as a tarball.
Tarballs are usually double-zipped files. This means, that they're first archived with a tool called tar (the standard unix archiving tool), and then for best compressions sake, the tar file is then zipped up with gzip (the GNU Zip tool, which is akin to PKZIP).
|You can still unzip/zip WinZip/PKZIP compressed files with Linux, using the unzip and zip tools, rather than gunzip and gzip.
Furthermore, KDE and GNOME both have a GUI tool built in to handle .gz and .zip files effortlessly!
| Still can't find it? Use google!
It's happened to the best of us, and in time, it may happen to you. If you are looking for an RPM package, but you can't find one on the authors web page, nor on rpmfind.net. You can only find the tarball and you just can't find it anywhere.
A word to the wise though: If you are downloading an RPM or DEB package from a third-party, it could have been tampered with, or worse, wreak havoc with your Linux installation - use third party binaries as a last resort and with caution!
Google searching for a GNU napster client, Gnapster. Click to enlarge.
A- ha! For that, you'll need to move on to Chapter 9: How do I install software?