A component is anything that can be downloaded and installed on a system. Most of the certified components on the universal server are RPMs.
Linux is not developed by a single company. Instead, thousands of independent, Open Source developers constantly update and improve the Linux operating system. There are tens of thousands of components available for download and installation.
The RPM Package Manager brings some order to the chaos. The idea of a Linux package provides a standard for independent developers to offer their applications for distribution. The RPM standard describes how to name a package, how to structure its format for consistent management, and the type of data it should or may contain.
A set of components packed with the RPM engine is also called an RPM and is also packed with the following data:
Date, time, version, release, and environment (such as Intel or zSeries)
Description of the packed components, including the following: names, size, installation paths, permissions, owners, general security checks, and file contents.
Reference to other components. For example, what it is similar to, what it is dependent upon, and what it conflicts with.
a signature to verify authenticity
Collect the source files of the application and any new updates.
Write the specification file containing packaging scripts run by the RPM engine and a file list.
Run the RPM Engine with flags to build the package.
Notice that the RPM procedure is rather loose. The developer can decide which source files to include in the package. Other files, such as libraries and basic operating system components, may be simply pointed to in the reference data as dependent packages. This means that the end user must make sure that all packages that the developer assumed were already installed are, in fact, on the system.
When the user installs an RPM, the scripts (written by the developer, not created by an automated standard) are run and tell the user the following information:
If dependent components need to be installed
If there are installed components that conflict with files in the package
The version range of dependent components and conflicting components