.. CDDL HEADER START
.. The contents of this file are subject to the terms of the
Common Development and Distribution License (the "License").
You may not use this file except in compliance with the License.
.. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
or http://www.opensolaris.org/os/licensing.
See the License for the specific language governing permissions
and limitations under the License.
.. When distributing Covered Code, include this CDDL HEADER in each
file and include the License file at usr/src/OPENSOLARIS.LICENSE.
If applicable, add the following below this CDDL HEADER, with the
fields enclosed by brackets "[]" replaced with your own identifying
information: Portions Copyright [yyyy] [name of copyright owner]
.. CDDL HEADER END
.. Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
Packaging and Delivering Software with the Image Packaging System
=================================================================
A developer's guide
^^^^^^^^^^^^^^^^^^^
.. raw:: pdf
Spacer 0 100
.. class:: figure
|logo|
.. raw:: pdf
SetPageCounter 0 arabic
Spacer 0 450
.. class:: titletable
+--------------------------+--------------------+
| | |
| |ologo| | |version| |
| | |
+--------------------------+--------------------+
.. header::
.. oddeven::
.. class:: headertable
+-----------------------------------------------+
| .. class:: footerright |
| |
| ###Section### |
| |
+-----------------------------------------------+
.. class:: headertable
+-----------------------------------------------+
| .. class:: footerleft |
| |
| ###Section### |
| |
+-----------------------------------------------+
.. footer::
.. oddeven::
.. class:: footertableright
+------------------------------------------------------+
| .. class:: pageright |
| |
| ###Page### |
+------------------------------------------------------+
.. class:: footertableleft
+---------------------+--------------------------------+
| .. class:: pageleft | .. class:: footerleft |
| | |
| ###Page### | ###Title### |
+---------------------+--------------------------------+
.. raw:: pdf
PageBreak oneColumn
::
Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
This document is provided for information purposes only and the
contents hereof are subject to change without notice. This document is
not warranted to be error-free, nor subject to any other warranties or
conditions, whether expressed orally or implied in law, including
implied warranties and conditions of merchantability or fitness for a
particular purpose. We specifically disclaim any liability with
respect to this document and no contractual obligations are formed
either directly or indirectly by this document. This document may not
be reproduced or transmitted in any form or by any means, electronic
or mechanical, for any purpose, without our prior written permission.
Oracle and Java are registered trademarks of Oracle and/or its
affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel
Corporation. All SPARC trademarks are used under license and are
trademarks or registered trademarks of SPARC International, Inc. AMD,
Opteron, the AMD logo, and the AMD Opteron logo are trademarks or
registered trademarks of Advanced Micro Devices. UNIX is a registered
trademark licensed through X/Open Company, Ltd. 0611
Preface
-------
In Oracle Solaris 11 and onwards, system software is packaged with
the Image Packaging System, or IPS. IPS takes care of
installing new software and upgrading that software.
This manual is for developers and advanced administrators who want
to better understand IPS, how to use it to package their own
software, and want to understand how Oracle Solaris is packaged with
IPS.
Special attention is given to the underlying design
concepts and design patterns so that readers can more readily
understand and utilize the more advanced features of IPS.
How this book is organized
--------------------------
**Chapter 1** - *Design Goals and Concepts*, outlines the basic
design philosophy of IPS and its expression as software
patterns.
**Chapter 2** - *Package Lifecycle*, provides an overview of the
software package lifecycle with IPS.
**Chapter 3** - *Basic Terminology*, lays out the basic terminology
and describes the various components that form IPS.
**Chapter 4** - *Packaging Software with IPS*, gets
the new user started constructing their own packages.
**Chapter 5** - *Installing, Removing, and Updating Software Packages*,
shows basic operation of pkg(1).
**Chapter 6** - *Specifying Dependencies*, explains the different types
of IPS dependencies and how they can be used to construct working
software systems.
**Chapter 7** - *Allowing Variations*, explains how variants, facets
and mediated links are used to allow software publishers to
define multiple installation forms for their packages.
**Chapter 8** - *Modifying Package Manifests Programmatically*, explains
how package manifests can be machine edited to permit the automated
annotation and checking of package manifests.
**Chapter 9** - *Causing System Change With SMF*, explains how to
use the Service Management Facility to automatically handle
any necessary system changes that should occur as a result of
package installation.
**Chapter 10**, *Advanced Update*, deals with more complex package
upgrade issues, and describes several features in IPS designed
to simplify these problems.
**Chapter 11**, *Signing Packages*, explains how package signing works
and how developers and QA organizations can sign either new
or existing, already signed packages.
**Chapter 12**, *Handling Non-Global Zones*, describes how IPS handles
zones and discusses those cases where package developers should be
aware of zones.
**Chapter 13**, *How IPS Features Are Used When Packaging the Oracle
Solaris OS*, describes how the packages for the operating system are
constructed and how the various dependency types in IPS are used to
define working package sets.
**Chapter 14**, *Republishing Packages*, describes how administrators
can modify existing packages if needed for local conditions.
**Appendix A**: *Classifying Packages*, contains info.classification
scheme definitions.
**Appendix B**: *Converting SVR4 packages to IPS*, gives an example of
converting an SVR4 package to IPS, and highlights some areas that might
need special attention.