Jump to content

Image Packaging System

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Wikisonj (talk | contribs) at 10:14, 28 October 2023 (description). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Image Packaging System, also known as IPS[1] or pkg(5), is a cross-platform package management system created by the OpenSolaris community in coordination with Sun Microsystems. It is used by Solaris 11 and several Illumos-based distributions: OpenIndiana, OmniOS, XStreamOS[2] and a growing number of layered applications, including GlassFish, across a variety of OS platforms. IPS is coded in the Python programming language.

Here are some key features and concepts of IPS:

  1. Repository-Based: IPS uses a network-based repository for package distribution, similar to systems like apt and yum.
  2. Atomic Updates: IPS supports atomic operations. This means that when updating or installing software, changes are made in a new boot environment. If the operation fails for any reason, the system remains in a consistent state.
  3. Boot Environments: Related to the atomic updates, IPS utilizes ZFS snapshots to maintain multiple boot environments. This means that if there's an issue with a new software update, one can easily roll back to a previous working boot environment.
  4. Facets and Variants: These allow fine-grained control over the installed parts of packages. For instance, you can choose to not install documentation or certain localizations.
  5. Dependencies: IPS manages software dependencies, ensuring that the required packages are present for the software you're installing.
  6. Efficient Storage: It utilizes ZFS for storage, which means features like deduplication and compression are available.
  7. Searchable: IPS repositories are easily searchable with the pkg command, allowing users to quickly find and install software.

Basic Commands:

  • Search for a Package: pkg search <package-name>
  • Install a Package: pkg install <package-name>
  • Update All Packages: pkg update
  • Remove a Package: pkg uninstall <package-name>
  • List Installed Packages: pkg list

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:

Considerations

Due to the fact that IPS delivers each file in a separate shelf[clarification needed] with a separate checksum, a package update only needs to replace files that have been modified. When dealing with ELF binaries, IPS computes checksums only from the loaded parts of an ELF binary[citation needed]. This means in practice that when only the ELF comment section has been changed, there would be no need to update it. However, this method of delivery can cause slower operation 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

  1. ^ "Packaging and Delivering Software With the Image Packaging System in Oracle Solaris 11.1". Oracle Solaris 11.1 Information Library. Retrieved 18 December 2012.
  2. ^ "Distributions - illumos - illumos wiki". Illumos wiki. Retrieved 12 May 2015.