Observations on the Image Packaging System

by Amit


Abstract

Project Indiana is an effort to create a single CD Open Solaris distribution and a top draw for its immense importance is its network centric package management system project- Image Packaging System (IPS). In this paper, the importance of this project – both technically and how it affects Open Solaris at large has been touched upon.

Keywords: Linux Distribution Model, Open Solaris, Open Source, Package Management

1. INTRODUCTION

Package Management is the ability to install and upgrade software over the network in a seamlessly integrated fashion. We have ‘apt-get’ system in Debian/Ubuntu, and the ‘yum’ system in Redhat/Fedora which are examples of some package management systems in popular Linux distributions.

Package Management is said to be the single biggest advancement Linux has brought to the industry [1]. This again has been the single most important factor for the phenomenal growth of Linux in the operating system scene.

1.1 WHY THIS MODEL WORKS AND WHY IS IT IMPORTANT?

Making the software easy to install, upgrade and uninstall (not necessarily in that order) over the network has resulted in single CD (and even 1.2 PROJECT INDIANA & IMAGE PACKAGING SYSTEM (IPS)

Project Indiana [2] is working towards creating a binary distribution of an operating system built out of the Open Solaris source code. “Refashioning Solaris as a distro is the essence of Project Indiana—and package management is the key technology that will hold it all together” [1].

Project Indiana [2] is leaps forward in Open Solaris based distributions mainly because of its network centric package management system- Image Packaging System (IPS) [3], which is the first time in history of Solaris that a network-centric management system is made available to its users.

2. IMAGE PACKAGING SYSTEM

The image packaging system, written in Python [4] is an attempt to design and implement a software delivery system with interaction with a network repository as its primary design goal. It is a portable software packaging and delivery system intended to allow efficient, observable, and controllable transitions between known configurations of software content.

2.1 ARCHITECTURE

IPS is a network-oriented binary packaging system. Although it will have on-disk representations for versioned packages, the primary expected use for installation of software will be between an intelligent client and one or more relatively simple servers.

The project defines a client-server publication mechanism. The publication client offers up transactions on packages.

The server evaluates transactions from the publication client. Transactions that are deemed to be complete and/or safe by server are then made available to the retrieval client. The initial transport will be HTTP and HTTPS, protocols around which most sites have developed mature access policies.

The default package depot server is maintained at [6] and the client is configured to connect to this package depot server. You can set up your own IPS repositories as illustrated in [7] [9].

A simple usage scenario would be:
1. User X issues the appropriate commands to install package P from the client program.
2. The depot server checks if the package requested is present. If yes, then proceeds to install else reports appropriate message- package already installed or package not available.

2.2 INTERFACE

The IPS currently exports the following interfaces via CLI [3]:
1. retrieval client CLI,
2. publication client CLI,
3. administrative and server CLIs,
4. client metadata representations,
5. server metadata representations,
6. retrieval and publication protocol operations,
7. dynamic language API to access packaging functions,
8. an on-disk package format,
9. package metadata conventions,
10. available package constituents (“actions”), and
11. package naming and versioning conventions

2.3 APPLICATION PROGRAMMING INTERFACE FOR IPS

As of now, there is no well defined language API. However, the Python code base may be re-used to implement custom solutions.[8]

A scripting interface to IPS seems to be out of the question [5].

3. SIMPLE USAGE SCENARIO

Use Case 1: Installation scenario when the package does not exist in the repository

amit@opensolaris-vbox:~# pkg install SUNWxmv
pkg: no package matching ‘SUNWxmv’ could be found in current catalog
suggest relaxing pattern, refreshing and/or examining catalogs
install failed: Unable to assemble image plan

Use Case 2: Installation scenario when the package exists in the repository

amit@opensolaris-vbox:~# pkg install SUNWxvm

DOWNLOAD PKGS FILES XFER (MB)
SUNWxvmdom 0/2 0/385 0.00/6.52

4. CONTRIBUTING TO THE EFFORT

The source code may be checked out from the repository at [10]. The project is still at its infancy and in need of more developers to fix the bugs, try out the features and improve the code base.

5. LOOKING AHEAD

Winds of change are blowing over the Solaris world and Image Packaging System is going to be a definite player in shaping the future. Are the Open Solaris people trying to copy the whole model of the Linux world? No. [1]

REFERENCES

  1. http://ianmurdock.com/2007/07/21/how-package-management-changed-everything/
  2. http://opensolaris.org/os/project/indiana/
  3. http://opensolaris.org/os/project/pkg/
  4. http://www.python.org
  5. http://blogs.sun.com/sch/entry/pkg_1_a_no_scripting
  6. http://pkg.opensolaris.org/
  7. http://blogs.sun.com/migi/entry/create_your_own_opensolaris_ips2
  8. http://mail.opensolaris.org/pipermail/pkg-discuss/2008-March/002229.html
  9. http://mail.opensolaris.org/pipermail/pkg-discuss/2008-March/002234.html
  10. http://hg.opensolaris.org

Related:


Last Update: April 28, 2008

Advertisements