Specifications

Red Hat Enterprise Linux to Oracle Solaris Porting Guide
93
installation in order to refresh the system configuration. They can also specify actions such as creating
users and groups as part of the package installation process.
The package manifest can be divided into three different parts:
Package metadata:
This section is conceptually similar to “tagged data (header)” in RPM packages. Similar to RPM
packages, this will have mandatory and optional elements. Here are the typical set of attributes
defined as part of package metada:
pkg.fmripackage name and version
variant.archthe architectures that the package supports
pkg.descriptionpackage description
pkg.summarypackage summary
info.classificationa grouping scheme used by package manager
Package contents:
This specifies what files, directories, and links will be installed as part of the package. Here you can
also specify things such as the directory on the destination system to which the files will get copied,
the user, the group ownership, the permissions, and son on.
Package dependencies:
Here you can specify the list of files and packages that must be present on the system before
installing this package. Typically, dependency generation is composed of two separate steps: First,
determine the files on which this software depends. Next, determine the packages that contain the
required files. There are IPS commands to generate and validate the dependency information. IPS
allows you to specify various types of dependencies on packages:
RequireIf this type of dependency is specified, the dependent package or its higher versions
must be installed before this package can be installed.
OptionalIf this type of dependency is specified, the dependent package or its higher version is
installed if it is available.
ConditionalThis type of dependency is most often used to install optional extensions to a
package if the requisite base packages are present on the system.
GroupGroup dependency is used to create a group of packages.
OriginThis dependency is used to resolve upgrade issues.
Packaging is a vast and intricate subject. In this chapter, we will restrict our scope to major
implementation differences between the two platforms to help in the migration from RHEL RPM to
Oracle Solaris 11 IPS.