Local Mirror of Upstream IPS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jakub Horak 03d8b4b034 Merge branch 'hg' 1 week ago
.github Create pull_request_template.md 6 years ago
doc 33036620 local set mediators may need actions if the mediated link is obsoleted 11 months ago
exception_lists 32458925 deliver python 3.9 modules for pkg 1 year ago
src 34459738 pkg.depotd should add security headers via cherrypy and mako 1 month ago
tools 33507757 pycodestyle needs to be configured since gate is unclean 1 year ago
.arclint 30733425 arclint 'hg nits' configuration for ips-gate 3 years ago
.gitignore Initial commit 6 years ago
.hgignore 17377205 IPS should not use M2Crypto 7 years ago
.hgtags Added tag 11.4.51 for changeset e4778f628d59 1 week ago
CONTRIBUTING.md 25839615 Need README.md and CONTRIBUTING.md for github repository (testing) 6 years ago
LICENSE-CDDL 25872713 need LICENSE-* files for IPS github repository 6 years ago
LICENSE-CPIO 25872713 need LICENSE-* files for IPS github repository 6 years ago
LICENSE-MINISAT 25872713 need LICENSE-* files for IPS github repository 6 years ago
README.md 25872713 need LICENSE-* files for IPS github repository 6 years ago


Solaris Image Packaging System


The image packaging system (IPS) is a software delivery system with interaction with a network repository as its primary design goal. Other key ideas are: safe execution for zones and other installation contexts, use of ZFS for efficiency and rollback, preventing the introduction of incorrect or incomplete packages, and efficient use of bandwidth.


IPS development requires additional external dependencies, which on Solaris 11 are provided by the list of packages found in src/pkg/external_deps.txt.

Build, Testing and Deployment

Once all dependency packages are installed, IPS source can be built by the following command:

  $ cd src; make install

The above will generate a proto directory under the root directory. Inside the proto directory, the build_i386 directory contains Python version-specific builds; root_i386 contains the complete build with the directory structure preserved.

Generally, testing of the new build can be done by the following command:

  $cd src/tests; sudo ./run.py -j 8

The above will run all test cases in 8 parallel processes. Other options are also available by typing ./run.py -h.

Tests running can also be done by using make:

  $cd src; sudo make test

Make targets test-27 and test-34 are available for testing specific Python versions.

IPS applications and libraries can be packaged and published into an IPS repository using:

  $cd src; make packages;

The above command generates IPS related packages and publishes them into packages/i386/repo on an x86-based system.

Usage Examples

  • Example 1 Create an Image With Publisher Configured

    Create a new, full image, with publisher example.com, stored at /aux0/example_root.

    $ pkg image-create -F -p example.com=http://pkg.example.com:10000 \
  • Example 2 Create an Image With No Publisher Configured

    Create a new, full image with no publishers configured at /aux0/example_root.

    $ pkg image-create -F /aux0/example_root
  • Example 3 Install a Package

    Install the latest version of the widget package in the current image.

    $ pkg install application/widget
    $ pkg set-publisher -g http://www.example.com/repo example.com
  • Example 5 Add and Automatically Configure a Publisher

    Add a new publisher with a repository located at /export/repo using automatic configuration.

    $ pkg set-publisher -p /export/repo

For more examples, please refer to List of References below or man page pkg(1) on Solaris operating system.

How to Contribute

Please refer to CONTRIBUTING for details.


The Image Packaging System is primarily distributed under the terms of the CDDL (Common Development and Distribution License), with a few portions covered by BSD-style or MIT-style licenses.

Refer to LICENSE-CDDL, LICENSE-CPIO (applies to src/modules/cpiofile.py), and LICENSE-MINISAT (applies to src/modules/solver/*) for details.

List of References

  1. Packaging and Delivering Software With the Image Packaging System in Oracle© Solaris 11.3

  2. Introducing the Basics of Image Packaging System (IPS) on Oracle Solaris 11

  3. Oracle Solaris 11 Cheatsheet for Image Packaging System