Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
IPS Basics
1 Introduction
Oracle Solaris 11 takes a new approach to lifecycle and package management to
greatly simplify the process of managing system software helping to reduce the
inherent risks of operating system maintenance, including reducing unplanned and
planned downtime. With the Image Packaging System (IPS), administrators can
install and update software from local or remote software package repositories
using a more efficient and modernized process.
Participants in this lab will gain example-led awareness and understanding of the
following technical facilities:
We will go on a brief tour of the new IPS feature and help the learner gain
confidence in this new technology to be able to take their expertise to the next step.
2 Overview
IPS automates the management of system software on Oracle Solaris 11 by replacing
patching with package updates. IPS is an efficient and network-centric approach
that includes automatic software dependency checking and validation. IPS builds on
the foundation of ZFS and utilizes its powerful snapshot and clone features which
help reduce risk by creating instant backups and near instant roll-backs in case
issues arise. Using IPS, administrators can easily and reliably install or replicate an
exact set of software package versions across many different client machines.
This lab builds on the foundation already laid in the Module 4 Lab – Advanced
Installation. We have already covered some of the basics of AI, the repository, and
package management so some of this will be a refresher. We will utilize the Virtual
Box Oracle Solaris 11 Text based image that we installed for Mod 4 – Advanced
Installation. And we will use the pre-installed repository that we added for that
module as well.
For instructions on downloading and installing the Oracle Solaris 11 Text based
image and the Oracle Solaris 11/11 Repository image, please see the Mod 4 –
Advanced Installation lab.
3 Pre-requisites
This lab requires the use of the following elements:
A current laptop with at least 2GB memory and 100GB free disk space
Oracle VirtualBox Software (4.0.16 with Extension Pack installed)
Oracle Solaris 11 11/11 Base Text Image (sol-11-1111-text-x86.iso)
Oracle Solaris IPS Repository (sol-11-1111-repo-full.iso)
The following assumptions have been made regarding the environment where this
lab is being performed:
4 Exercises
4.1 Oracle VirtualBox Hypervisor Software overview
Administrators can quickly see what configuration a system has by using the pkg
publisher command:
# pkg publisher
We can quickly query some basic information about this repository using the
pkgrepo info command, or they can load the repository URL into their Web browser:
You can see that our repository currently has 4292 packages, is online, and was last
updated on October, 26th of 2011.
Now that we’ve confirmed the repository let’s review installation of packages.
First we’ll investigate installing the GNU GCC compiler by doing a ‘dry-run’
For a dry run (no changes have been made to the system), we used the –nv switch.
We learn from this output that this package …
Note the other information available such as the description, state, publisher,
version, build release, etc.
Even if a package doesn’t require a new boot environment or at least a backup, you
can create one yourself on installation of any package using the below command.
Note: In the above output, the ‘Create boot environment:’ field now says ‘Yes’. Also
the screen informs us that the clone has been updated, activated, and will be the
default boot environment on next boot.
# beadm list
Set the active boot environment back to our default ‘solaris11’ instance.
Note: Your instance could have another name. Just use the default solaris instance
that you left intact from the last lab.
This lab has attempted to illustrate how easy it is to create backup boot
environments. It’s recommended that systems administrators use them as their day
to day best practices when administering and maintaining systems.
IPS makes it easy to get information about installed packages, whether updates are
available, and many other details about installed and not installed packages. The
first command we’ll review is the ‘pkg list’ command.
The pkg list command will return every package on the system. You can limit the
output by typing the name of an existing package.
# pkg list
# pkg list text/groff
The output above shows us the tail end of the ‘pkg list’ command with no
arguments. It basically lists out every package on the system. The second package
list command we give with a specific package to show the information that can be
obtained from the command. The columns will list the name, version and an IFO
column.
For example:
The ‘-af’ option lists all matching packages, including those that can’t be installed in
this image. @latest lists only the newest packages. This output indicates that …
To list the contents of the package and the paths and files that will be installed.
Another powerful feature of IPS is the ability to search for specific things about the
packages, like the name of a package that a file might belong to. Use the command
below to search the repository for a file called stdio.h and the output will tell you
Oracle Solaris 11 IPS technology includes the ability to update your system to the
latest packages with a single command.
To get the latest updates for the entire system at one time you can issue the pkg
update command. Use the ‘- nv’ option for a dry run to get an idea how much work
needs to be done.
You can also update specific packages by specifying them on the command line.
Our lab environments are very up to date so we won’t encounter any updates during
the lab.
If you need to back an update out you’d use the revert command.
Dependency Description
require This dependency is required. A package cannot be installed if any of its required dependencies
cannot be satisfied.
optional If this dependency is present on the system already then it must be at a specified version level
or greater.
exclude This dependency enforces a restriction such that a package cannot be installed if the specified
package is present at the specified version level or greater.
incorporate This dependency is optional, but the version range has both a lower and an upper bound,
allowing only further dot-separated integers to be added to the existing sequences.
conditional This dependency is required only if another predicate package is installed on the system. This is
often used to allow packages to provide support for features (such as X11 or language bindings)
only if the features are already present on the system.
group This dependency is required unless the package is on the avoid list, in which case, the system
will try to avoid installing this package. However, if another package requires this dependency,
it will be installed regardless of whether it is on the avoid list.
parent This dependency is used to ensure that global zones and non-global zones are kept in sync for
all kernel components and any software that spans the zone boundary.
We can see how these relationships are managed by taking a look at the manifest of
a particular package through the pkg command. A package manifest describes how
a package is assembled and provides basic information about the package (such as
Each line within the manifest is called an action. Actions describe a small part of the
overall package. The first part of each line describes the action type: set, license,
depend, dir, file, and so on. Let’s take a look at an example of the package manifest
using the ‘grep’ command on the ‘gzip’ package.
Take a look at variables that are set on installation of the gzip package.
Here we’ll take a look at the dependencies of the gzip package. You can see that it
depends on library and bash.
5 Lab Summary
In this document you practiced some package management commands and learned
how to administer packages in Oracle Solaris 11. We did some basic repository
configuration as a follow up to one of the earlier labs. We also installed and
uninstalled packages and practiced obtaining detailed information about packages.