PreviousNextContents


About RPM Files

 

A common problem facing all operating systems is how to keep the OS and all the installed software up-to-date. This problem becomes increasingly complicated when applications and files span several directories. A few years ago RedHat came up with a method of placing all files for a program, library, etc into a single compressed archive that also provides installation and removal information, a list external dependencies, target architecture, even recompilation information.

Anyone who has used ms-windows knows what happens when you install or remove an application program- your system stops working because shared programs and DLLs just got wiped out. RPM files greatly reduce problem by letting you know the names of other packages required when installing a new RPM, or programs that might be affected if you delete a RPM.

This section presents a very small subset of can be done with RPM files.


To find out which RPMs are currently installed on your system:

rpm -qa

 

To determine what files an RPM contains.

rpm -qlp <complete name of RPM file>
rpm -ql <basename of installed RPM>

 

To update an already installed package:

rpm -Uvh <complete name of RPM file>

 

To install a new package on your system:

rpm -i <complete name of RPM file>

 

To remove (erase) an installed RPM package:

rpm -e <basename of installed RPM>


Although many RPMs can be installed by normal users, installing and removing system packages requires you to be logged in as root.

The rpm program will output a warning message if you try to delete a RPM that is used by any other installed RPMs. Although it is possible to override this warning, you do so at your own risk.

Make sure you understand all the implications when removing and installing RPMs. For example, if you happen to remove glibc (by overriding the warning message) you will not be able to execute any shell commands, and your system will instantly become unusable ( yes, one of my friends actually did this, and he knew better! ).


PreviousNextContents