RPM Package Manager

RPM Package Manager is a free (GPL ) package management system, originally developed by the company Red Hat. It covers the packet format and all necessary tools to create RPM packages and manage.

The RPM format is part of the Linux Standard Base and means RPM Package Manager, formerly Red Hat Package Manager.

Background

In the early days of the Linux tgz packages were common; automated management was hardly possible with them. A targeted uninstalling individual packages was not possible. Also dependencies were not resolved, nor was at least a warning. Users who wanted to install software that had either know enough to resolve these dependencies yourself, or simply installed all the packages, but this in turn entailed the risk of package conflicts with itself.

Certain approaches a package management, there was, as based on the large package administrations established Unix systems this time - first tools were developed - such as SunOS (a precursor of Solaris), HP- UX, OSF / 1, IRIX or Apollo Domain / OS but which brought only a few functions.

This caused the Linux distributors that time considerable problems for the support and maintenance of their software, after which two competing systems were developed: the Debian package management system dpkg for Debian packages, initiated by the Debian project, and RPM from Red Hat.

The goal was to make software packages just for the developers as well as for the user easier to handle dependencies should be considered and if possible automatically disbanded. Redundancies as duplicate files or directories should avoid the system, and it should be possible to cleanly remove the software and consider the dependencies. Also, it should be possible to easily update and securely manage configuration files software.

A function to reverse the transaction if errors (transactions and rollback) is now as much a part of RPM as in the large package administrations of HP- UX and Solaris, if not to the same extent.

History

The first in 1995 for Red Hat Linux 2.0 entwickelnte version of the RPM based on RPP, PMS ( in the 1990s by Rik Faith developed for Linux operating systems ) and PM; it was written in Perl. Later RPM was rewritten in C..

Originally meant RPM Red Hat Package Management. End of the nineties, the name was changed in RPM package management. The background was legal aspects. RPM is now used by many distributors, and they sought the inclusion of RPM in the Linux Standard Base on. The company name (company) on behalf of the software would have at least more difficult.

RPM has been adopted by many Linux distributions, such as SUSE, Mageia or Mandriva Linux. Also, some UNIX systems, such as IBM AIX or Solaris, and non- Unix-like systems such as Novell NetWare used RPM.

Between 1999 and 2006 the development of the software came to a virtual standstill. Jeff Johnson, the lead developer of RPM on Red Hat until 1999, however, the software developed partially on and took care of bug fixes. For this branch RPM5 emerged as a further development of the RPM version 4

The various distributors developed in the meantime (1999-2006) own patches for RPM to eliminate error; Johnson's patches were usually not used.

In December 2006 several distributors included in Red Hat and Novell for RPM project together and developed RPM with the respective distribution own patches - still without Johnson's changes - together on.

This now results in two versions of RPM: RPM with patches of distributors and RPM5, which describes itself as an RPM from the " original code base."

Since most Linux distributions are free software, there is the advantage of a certain distribution over other to a large extent from the amenities of the respective package manager ( and from the assembled, tested and regularly updated ( RPM ) package collections of the respective distributors on the Internet ). Exchanging packets between distributors, was formerly impossible. This was easier with RPM, but is still fraught with problems because the various distributions that use RPM often use different versions and / or configurations of system software such as graphics libraries.

For the developer, a package management system like RPM simplifies the incorporation of software in the process established in the distribution structure (paths, dependencies, file name, package name). The packet format itself, however, verifies the contents of a package automatically. The developer defines the structure of the package independently and do need to be incorporated for each distribution in the respective features.

With the introduction of the Linux Standard Base many inconsistencies between the distributors have been resolved. LSB facilitates the work of packagers significantly because at least file names and paths are unified. Appropriate care of the Paketmaintainers provided can be relatively sure an RPM from another LSB distributor in any other LSB import system.

Ports

A package management is system-dependent. So besides various distributors have not even all Linux vendors the same packet format. Other systems naturally bring with their own software.

But on many other Unix systems now GNU software comes as standard (at least, the system administrator installed they usually quite quickly ) was also RPM - especially in the context of the project OpenPKG - ported to other systems, which simply additional can download software.

In a sense, this is equally a step forward and a step back. So far, system administrators have the software itself compiled from source and then entered into the system. This step and the work incurred no need of course.

However, there is between the package database from RPM and the native package database, no communication, and thus double the installations nor resolved as a lack of system dependencies on the package systems away.

Construction

The RPM files are usually compressed with gzip cpio archives, but the individual parts can be easily searched for specific information, because a header field in binary format is added to each packet. This header data is not compressed and contain all important information. This facilitates fast querying RPM packages.

XML Package Metadata

In the RPM specifications also can find the specifications for directories of several RPM packages. The packets get stored in a directory that contains information about the packages itself in the form of metadata files in addition to the packages. If a suitable program then requires information about the software included in the directory, it is enough to download the metadata. In these data, the existing packages whose versions, dependencies, architecture, etc. are included.

Programs that can manage XML package metadata are yum, yast, Red Carpet, smartpm and apt- rpm.

Programs that process the RPM files

  • Rpm - a Linux program that can be called directly from the console.
  • Mandriva urpmi - so that the dependencies are resolved automatically during installation.
  • Apt4rpm - a port of APT for RPM format.
  • Up2date on Red Hat
  • RHN
  • Spacewalk
  • OpenSUSE Build Service
  • Rpmlint
  • Pulp
  • KPackage (KDE)
  • Gnorpm ( Gnome)
  • Yellowdog Updater, Modified ( yum ) Yumex and kyum - two graphical interfaces for Yum ( Gnome, KDE)
  • PackageKit - a graphical program that runs both on the basis of APT as well as Yum.

Distributions that use Red Hat packages as the core of the package management

675615
de