Specifications

Red Hat Enterprise Linux to Oracle Solaris Porting Guide
90
Chapter 10 Packaging and Distributing
Applications
With increasing trends towards consolidation using virtualization, system administrators are required to
manage large volumes of software often with complex interdependencies on a varied set of hardware
platforms. Keeping the systems running smoothly at data centers with complex software dependencies
on varied hardware platforms is becoming a complex and challenging task every day. Proper
management of system software can help ensure a well-known, tested, and consistent system state
across a variety of systems in the data center. For most enterprise IT organizations, significant effort
goes into upgrading operating system software to appropriate patch levels to benefit from bug fixes,
security updates, or new hardware driver support.
While a simple application might consist of only a few executable files, most enterprise software
applications are more complex. A typical application or utility will consist of several executable files,
libraries, scripts, configuration files, and documentation notes and guides. All these filesand
information about where to place them in the file system and what permissions they have on the
installed systemare put in what is referred to as a package. There are many packaging formats
popularly used by software vendors. Some are easier to use than others. The choice of packaging
mechanism depends on the application requirements as well as upgrade and maintainability
requirements. Your application packaging needs can be met by simple packaging mechanisms, such as
tarballs, or you might need complex and advanced packaging mechanisms, such as RPM or IPS.
Packaging on RHEL
On RHEL, RPM is the powerful package manager that provides the infrastructure for installation,
upgrade, and removal of packages. Typically, each package bundles an application along with all the
necessary binaries and documentation associated with that application. For example, the Apache Web
server comes with a number of configuration files, a large set of documentation files, and the Apache
Web server itself. All of this fits into one RPM package. One of the main advantages of the RPM
system is that each .rpm file holds a complete package. For example, let’s look at the GCC package
that contains the GNU Compiler Collection version 4.4, which you’ll need in order to compile C code.
The file that holds the GCC package is named
gcc-4.4.5-6.el6.rpm.
Based on the RPM naming convention, this package represents GCC package version 4.4.5, 6th build
of an RPM package, for i686 (Intel) architecture systems. The RPM manager is a very powerful tool;
with a single command you can copy a .rpm file to another Linux system and install it, getting the
complete contents of the package, or you can use other commands to remove or update the package.
RPM files mainly contain four sections, as follows:
Identification area:
The identification area contains file type information, a.k.a. the RPM package, the version of the
RPM packing system, and so on.