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.