RPMs by Clint Pate MCSE/CNA
What Is RPM? • RPM is short for Red Hat Package Manager. First used by the Red Hat Linux distribution, it now is the package format of choice for many major distributors: SuSE, Caldera, Turbolinux and - of course - Mandrakesoft, to name a few. • A package consists of two major parts: the program and its associated files.
Package Maintainers • Packages are built by package maintainers using a so-called 'specfile' (specification file). • The 'specfile' which determines where the files of a package are going to be installed to, which other packages are needed by the package in order to work correctly, what programs to execute before or after installing or uninstalling a package, but also information on who built the package and when, a description of the purpose of the content of the package and much more.
What RPM Does For You? Among the things RPM and the package maintainer do for you are: • Compiling and patching the program's source code. • Handling dependencies. • Providing information on status. (Integrity check, etc.) • Security checks. (PGP or GPG signature) • Automation. (Scripts to automate maintenance tasks) • Clean removal. • Network capability.
What RPM Does Not Do For You! • Like every other tool, RPM has its limitations. • No automatic resolution of dependencies. RPM will tell you what's missing, but it won't fetch it. • No interactive configuration. It’s a one stop shot. • No protection from packaging errors. We all make mistakes, and package maintainers are no exception. • No compatibility guarantee. RPM is used by many Linux distributors and independent persons. • Optimizations. It is possible to optimize RPMs for a certain type of processor by compiling the program sources with the appropriate options. M does that.But these compiler options are just one part on a vast array of available compiling settings.
Basic Handling Of Packages And Programs • RPM discriminates between a not-installed and an installed package. • Operations on a not-installed package require the full package name, like: • rpm --install mc-4.5.51-7mdk.rpm • If you are doing something involving an installed package, however, the program name is required: • rpm --erase mc • The program name is the package name without the version numbers and the 'rpm' ending. • If you are trying to do something like • rpm --erase mc-4.5.51-7mdk.rpm • you will get • error: package mc-4.5.51-7mdk.rpm is not installed • even if the package is installed.
What’s In A Name • The package name of an RPM consists of three parts: • The program name, • The version number of the included program • The version number of the package. • Thus 'mc-4.5.51-7mdk' means: 'This package contains the program 'mc' in its version 4.5.51. It is the seventh revision of this particular package.' 'mdk' denotes the distribution (not mandatory). • Why an extra number for the package version? • Packaging is a complex process. • Sometimes the packager may overlook some detail and has to come up with a fixed package. Or maybe he or she just has discovered a way to make the package better. • So, in order to allow upgrading packages which contain the same version of a program, the package version number has been invented.
RPMing • RPM accepts a sackful of options. Thankfully it is pretty obvious from their names what they do. Most options come in two flavors: a long option and a short option. The long option features two hyphens and the full option name, the short one hyphen and - in most cases - the first character of the full option. Of course you only have to provide one option form (i.e. either rpm --install [name] or rpm -i [name]). • rpm --install (-i) [name] installs a package. • rpm --erase (-e) [name] erases it. • rpm --upgrade (-U ,notice it's a capital U!) [package name] upgrades an installed program with a newer package. • rpm --query (-q) [name] queries for package name and version of an installed program • rpm --query --package (-qp) [name] does the same on a package which isn't installed • rpm --query --package --info (-qpi) [name] tells you what the package is about, who packaged it etc. • rpm --verify (-K ,for some reason)[name] will tell you if all files of the packages are still (or at all) installed.
Ximian’s Red Carpet • Ximian™ Red Carpet™, delivered as part of Ximian Desktop, is a unique software management solution that simplifies and automates the most challenging tasks of Linux software management: version control, system updating and package conflict resolution (depend.), for all the leading Linux distributions. • When you add, update or remove applications on your Linux workstation, Red Carpet automatically analyzes and resolves all of the hundreds of potential software dependencies and shared-file conflicts that might affect your system. Red Carpet saves you hours of system administration effort by ensuring that your software is up-to-date and running smoothly.
Red Carpet Desktop Info Installed Packages