This area is an archive and is no longer actively maintained. Information found on this page is likely to be extremely out of date and therefore highly inaccurate. We recommend the Ximbiot - CVS Wiki for up-to-date information about CVS and its associtated tools.

If you do find anything useful on this page that is not yet in the Ximbiot - CVS Wiki and you have the time, please add it!

RPM

RPM

RPM, the Red Hat Package Manager, is a packaging tool. That is, it helps system administrators and users keep track of things like which versions of which software are installed on a particular machine, and helps software developers build packages from source code.

One of the key features of RPM is commonly known as "pristine sources". This means that an RPM source package can contain an unmodified version of a software package together with a set of patches, rather than needing to contain all the sources in one place. Typically the unmodified (pristine) sources are from another organization, and the patches contain whatever local modifications may be required in a particular situation.

Another powerful feature is the ability to verify packages. If you are worried that you deleted an important file for some package, just verify it.

More advanced RPM features include relocatable packages, package dependencies, an RPM library, and support for multiple architectures.

Platforms

RPM currently runs on Linux, IRIX, Solaris, SunOS, AIX, HP/UX, AmigaOS, and FreeBSD, and is one of the more popular packaging systems for free software on the Internet.

RPM and CVS

The reader who is familiar with CVS may have found the above description of pristine sources very familiar, because this feature has generally similar goals to the CVS vendor branch feature. The two features are crying out for integration, and in fact the "rpm-cvs" package allows one to build an RPM package from a CVS source tree. If one is using CVS vendor branches, one can move the vendor branch to the pristine sources in the RPM source package, and move the local changes from CVS to the patches in the RPM source package.

See below for more on rpm-cvs.

Mailing lists and newsgroups

There is an RPM mailing list; to subscribe send email to rpm-list-request@redhat.com with "subscribe" in the subject line. Before asking for help on this list, please try to find an answer with your own resources, such as the documentation and the mailing list archives at the rpm.org site mentioned below. Traffic has been running about 5 or 10 messages a day.

There are no newsgroups focused on RPM.

Getting RPM

I suppose we need to make an explicit disclaimer that the distributions listed below are not supported by Cyclic.

Many linux distributions include RPM (despite the name RPM, it is not just found in Red Hat Linux).

Download RPM from the rpm.org site mentioned below.

For more information

The book Maximum RPM is the official, definitive technical reference to RPM. It describes RPM's history, philosophy, usage, and internals, from both the user and packager perspectives. Consult the rpm.org web site for a PostScript copy of the book, or a list of RPM changes since the book was published.

The web site rpm.org contains RPM documentation, links to additional RPM-related sites, and other RPM information. There is a draft update of this site at adrian.gimp.org.

There are quite a few packages which work together with RPM. Quality may vary and the usual disclaimers.

  • PkgMaker is a tool to build a Solaris package in the standard pkgadd format, from an RPM source package.
  • Alien converts binary packages between RPM and various other package formats. So far it seems to mainly support package formats which are popular on linux.
  • The rpm2cpio program converts an RPM package to a cpio archive which can be unpacked with one of the usual cpio programs. There are two implementations: one is supplied along with RPM and the other is in perl.
  • The rpm-cvs package, described above, is at ftp://ftp.brouhaha.com/pub/eric/rpm-cvs. In particular, there is a nice README file there which describes it in greater detail.
  • The gbuild package also has to do with getting RPM and CVS to work together.
  • Rpm2html generates web pages describing RPM packages, to make it easy to see what is in the packages.
  • RPM user interfaces: the RPM command line and the Glint graphical interface are distributed in the usual places (for example Red Hat Linux). Purp is a curses-based interface (for text terminals).
  • AutoRPM helps distribute RPM packages across a network. Rpmwatch watches the Red Hat Errata site for updated packages. For information on both, see Freshmeat.

Pages regarding RPM on specific platforms (beyond what is at rpm.org):

Derek Price, CVS developer and technical editor of Essential CVS (Essentials line from O'Reilly Press) , and others offer consulting services and training through Ximbiot.