Multi-Install is the ability to install, manage and operate multiple instances of a software distribution into one instance of the OS at the same time. The instances could be the same version of the software, or different versions. This has historically been an often repeated request of customers, and is a capability that is difficult to achieve with traditional native packaging.
This specification gives a brief summary of the multi-install project. For a much more detailed look at the overall motivation, architecture and strategy for multi-install please see Multiple Installation and Management of Layered Products
The deliverables for this project are a suite of specifications. These specifications all exist today, and are in varying levels of completeness:
|Multiple Installation and Management of Layered Products||WSARC 2006/130||Pending approval of above||Description of the overall multi-install strategy|
|Filesystem Layout for Unbundled Software||WSARC 2006/239||Approved||Defines filesystem layout of installation umbrella directories|
|Dependency Wiring for Unbundled Software||WSARC 2007/445||Under Review||Defines how components within an installation umbrella directories should resolve dependencies on other component|
|OS Coexistence for Unbundled Software||TBD||In Progress||Defines a set of best practices to handle OS co-existence issues that arise when implementing multi-install (for example handling clashes in the Start menu).|
The following UC 2.0 Requirements are covered by this document:
|Overall-2.1||Ability to install multiple, completely distinct installation images on the same OS instance.|
|PM-1.5||Specify relative and default installation locations for files|
Details of the Multi-Install architecture are given in the specifications listed in section 1.2. The following is a summary of the significant architectural features.
Each product distribution is installed into its own umbrella installation directory. This directory is referred to as a user image, or sometimes more specifically as $INSTALL_HOME. A user image is self contained with respect to direct, non-OS, local dependencies. For example all shared component libraries that a product needs are contained in the product's user image.
Each user image may be managed independently. Software may be added, removed or updated in one user image independent of other user images.
The install location is chosen by the user during installation and may be anywhere in the filesystem where the user has write permission.
Multi-install does not require root (or administrative) credentials to install software. Any user can install a software distribution as long as they have permission to write to the installation location.
Update Center 2.0 has chose IPS (Image Packaging System) for its software packaging system. IPS is an OpenSolaris project and will be the packaging system used for the OpenSolaris Binary Distribution.
IPS supports some key features required to implement multi-install:
A critical portion of multi-install is to easily and independently manage user images on an ongoing basis, including extending the user image with new software and updating existing software with maintenance updates. This capability is provided by the IPS subsystem, and will be enhanced via a UC2.0 update GUI application.
The organization of the filesystem within each user image is defined by Filesystem Layout for Unbundled Software. A couple significant points of this layout are:
In addition to specifying local dependencies via the packaging system it is essential to robustly resolve dependencies at runtime. Details concerning this are covered by Dependency Wiring for Unbundled Software.
With multiple instances of a distribution installed on the system at the same time there will be namespace clashes in various subsystems of the operating system.
For the filesystem, this is handled by having independent install locations.
For other subsystems, like the Start menu, or smf(5), additional conventions are needed. These are covered by Operating System Co-existance for Unbundled Software
Interfaces are defined by the specifications and ARC cases given in section 1.2.
|[#1]||Multiple Installation and Management of Layered Products|
|[#2]||Filesystem Layout for Unbundled Software|
|[#3]||Dependency Wiring for Unbundled Software|
|[#4]||Operating System Co-existance for Unbundled Software|