Image Packaging System
The Image Packaging System, also known as IPS[1] or pkg(5), is a cross-platform (written in Python) package management system created by the OpenSolaris community in coordination with Sun Microsystems. It is used by Solaris 11, several illumos-based distributions: OpenIndiana, OmniOS, XStreamOS[2] and a growing number of layered applications, including GlassFish, across a variety of OS platforms.
Features
Features include:
- Use of ZFS, allowing multiple boot environments and easy package operation rollbacks
- Transactional actions
- Support for multiple platform architectures within a single package
- Legacy support for SVR4 packages
- Extensive search grammar
- Remote search capability
- Changes-only based package updates
- Network package repository
- File and network-based package publication
- Package operation history
- On-disk package format (p5p)
- Multi-platform ports for layered applications:
Advantages
The fact that IPS delivers each single file in a separate shelf with a separate checksum, a package update only needs to replace files that have been modified. For ELF binaries, it computes checksums only from the loaded parts of an ELF binary; this permits e.g. to avoid to update an ELF binary that changed only the ELF comment section.
Trade offs
Due to the fact that IPS delivers each single file in a separate shelf, slow operation is caused when the input source is on a medium with high latency (e.g. internet with higher round trip time or CD/DVD media with slow seeks).
References
- "Packaging and Delivering Software With the Image Packaging System in Oracle Solaris 11.1". Oracle Solaris 11.1 Information Library. Retrieved 18 December 2012.
- "Distributions - illumos - illumos wiki". Illumos wiki. Retrieved 12 May 2015.