In addition to RPM packages, which we have already discussed, you will
encounter other package types, the most common ones being DEB packages for the
Debian Linux distribution and TAR.GZ or TAR.BZ2 which are not technically
packages but rather archived and compressed sets of files. Out of the box,
SUSE 9.1 can handle RPM files with YaST and TAR.GZ/BZ2 files by using the built
in ARK unzip utility from the right click menu. DEB packages are not
supported, though they can be if you add the right software.
Not every RPM package contains an executable program. Some contain the
raw source code of a program, which needs to be compiled before it can be used,
some contain developer versions of the code to enable other programmers to build
upon it easily, and many contain libraries. Linux Libraries are sets of code
which can be easily accessed and used by installed programs, adding a degree of
modularity and easing the task of software creation. Almost all Linux
software depends on one or more of these libraries in order to function
correctly, so it comes as no surprise that library files make up most of the
dependencies you will encounter when installing new packages.
Library filenames start with 'lib', for example 'libGL' or 'libexif'.
You can see a bunch of them by pointing Konqueror to '/usr/lib'.
When providing packages for download, it is quite common for Linux
software authors to also create an RPM package of the source code for their
application. These source RPMs are identified by having 'src' somewhere in
the package filename (for example 'rssowl-1.1-0.1.src.rpm'), and cannot be
installed like a 'normal' package.
Installing packages that depend on other
packages
Quite often, programs you would like to install on your Linux machine will
require that other programs or packages be installed first. The solution
for this, as you might imagine, is to track these programs/packages down and
install them.
As an example of this, let's try to install RSSOwl, an RSS
feed-reading program. As we are about to find out, this program
requires a library which is not installed by default in SUSE 9.1. As we
are also about to find out, that library requires another couple of libraries to
be installed in turn. Welcome to the package dependency blues!
Fortunately, YaST makes figuring out which packages are needed quite a simple
process.
To facilitate this demonstration, we are going to take advantage of an
invaluable resource for Linux users, www.rpmfind.net. This site is a
frequently updated repository for RPMs of all kinds, from libraries to full
programs tailored to a variety of distributions. If you are looking to add
any program to your Linux installation, or need a package to complete an
installation, this should be your first port of call.
To start with, go to www.rpmfind.net and enter 'rssowl' in the search bar.
Take a look at the results. As you
can see, rpmfind stores several versions. We'd like the most recent, and
not the source file (as mentioned above) so click the
'rssowl-1.0.2-0.2.i586.rpm' link to download it to your Home directory.
As we did when installing Xnap, find the RSSowl RPM file and click it, then
hit 'install package with YaST'.
Hmm… We are missing the 'libcairo' library package. Make a note of the
name of the missing package, then click cancel and close the YaST package
installation window.