Home| Howto's| Downloads - RPM's| Developers & Admins| Resources| About Us
GENERAL LINKS
N E W S
L i n k s
K n o w l e d g e
    B a s e

F o r u m s
T e a m
  BE SURE TO FOLLOW OUR DAILY NEWS SITE

What Is This RPM Thingie Anyway?    Print this jdshelp HowTo

Undoubtedly some of you have come to this RPM repository in blissful ignorance of what it is or what it does, hoping that if you click around enough, secret doors will open inside this site and ALL the basic truths of the JDS universe will reveal themselves, or at least those that end with .rpm.

Originally RPM stood for RedHat Package Manager. Redhat was and is one of the top Linux distributors and when they first started bundling up all the things that make a Linux distribution they looked around for a way to do this. Linux like Unix is comprised of a bundle of various 'packages' that when assembled in a distribution and loaded in the correct order give you an operating system, in our case JDS. RedHat first wrote a utility called 'RPP', and then contracted out one called 'PM' which was then modified by Marc Ewing and Erik Troan into the system we know and you will end up loving today.

The basic principle of RPM is that packages should contain not only an application, but also information about that application. Details of any libraries that it requires (known as 'dependencies'), a list of files to be installed, who made the package and much more is included with the RPM package. It also enables packages to be digitally signed using PGP (an encryption method) so their authenticity can be validated. When a package is installed, all of this information is held by RPM in a special database so the information can be queried by users and also used to determine that all dependencies are met when installing new software. In JDS when you go to the Launch->Applications->SystemTools->Administration->Software Installer program (Sun wanted to put this program in the menu basement but they couldn't find the stairs), this Sofware Installer is basically a graphical interface to the RPM program.

From the Sofware Installer you can search for rpms included on your installation CDs, install or remove them and everything is recorded in a database so that if you use the OnLine Update feature of JDS, it also keeps the database up to date. If however you want to use any of the rpms included on the JDSHELP.ORG site you need to use the command line version of JDS or else install Webmin (see Webmin howto in the howto section).

Installing with RPM

Command line aficionados believe that installing an RPM couldn't be simpler, the following command: rpm -i file.rpm will install the given RPM ('file.rpm' being the actual RPM file) checking first that any dependencies are met. Should a package fail the dependency check, a list of the required packages will be produced. This is the place where you sooner or later end up being very frustrated because there is always some program you like that needs some obscure other package but the error messages RPM throws out are not entirely lucid. Many attempts have been made to overcome this Achilles heel, the most popular being aptget which just takes care of those pesky 'failed dependencies'

It should however be noted here that Sun's JDS is a very tightly woven system designed to be stable and secure, an enterprise system, if you will, so before you leap over that 'failed dependency' wall check around this site to be sure this has worked for someone before, else you may impair the smooth running of your system. It is for this reason that using RPM from the command line or through Webmin is a good idea. Neither of these programs will indiscriminately download and install dependencies. If you can't find it that dependency listed in the Software Installer database, there's probably a reason.

Upgrading an RPM is similarly easy by using the command: rpm -U file.rpm and packages can be removed with the command: rpm -e package. Should you feel like getting into the innards of this beast please visit http://www.rpm.org/RPM-HOWTO/use.html

Posted July 12, 2004 by Brian Goodyear