<?xml version="1.0" encoding="iso-8859-1"?>
<!--Arbortext, Inc., 1988-2008, v.4002-->
<!ENTITY % ent SYSTEM "entities.ent">
%ent;
]>
<refentry id="pkg-1">
<refmeta><refentrytitle>pkg</refentrytitle><manvolnum>1</manvolnum>
<refmiscinfo class="date">3 Nov 2016</refmiscinfo>
<refmiscinfo class="sectdesc">&man1;</refmiscinfo>
<refmiscinfo class="software">&release;</refmiscinfo>
<refmiscinfo class="arch">generic</refmiscinfo>
<refmiscinfo class="copyright">Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.</refmiscinfo>
</refmeta>
<refnamediv>
<refname>pkg</refname><refpurpose>Image Packaging System retrieval client</refpurpose>
</refnamediv>
<refsynopsisdiv><title></title>
cmd_options</replaceable>] [<replaceable>operands</replaceable>]</synopsis>
</synopsis>
<synopsis>/usr/bin/pkg install [-nvq] [-C <replaceable>n</replaceable>] [-g <replaceable>path_or_uri</replaceable>]...
[-r [[-z <replaceable>zonename</replaceable>]... | [-Z <replaceable>zonename</replaceable>]... ]]
[--accept] [--licenses] [--no-index] [--no-refresh]
[--no-be-activate]
[--no-backup-be | --require-backup-be]
[--backup-be-name <replaceable>name</replaceable>]
[--deny-new-be | --require-new-be] [--be-name <replaceable>name</replaceable>]
[--reject <replaceable>pkg_fmri_pattern</replaceable>]...
[--sync-actuators | --sync-actuators-timeout <replaceable>timeout</replaceable>]
<replaceable>pkg_fmri_pattern</replaceable> ...</synopsis>
<synopsis>/usr/bin/pkg exact-install [-nvq] [-C <replaceable>n</replaceable>] [-g <replaceable>path_or_uri</replaceable>]...
[--accept] [--licenses] [--no-index] [--no-refresh]
[--no-be-activate]
[--no-backup-be | --require-backup-be]
[--backup-be-name <replaceable>name</replaceable>]
[--deny-new-be | --require-new-be] [--be-name <replaceable>name</replaceable>]
[--reject <replaceable>pkg_fmri_pattern</replaceable>]... <replaceable>pkg_fmri_pattern</replaceable> ...</synopsis>
[-r [[-z <replaceable>zonename</replaceable>]... | [-Z <replaceable>zonename</replaceable>]... ]]
[--ignore-missing] [--no-index] [--no-be-activate]
[--no-backup-be | --require-backup-be]
[--backup-be-name <replaceable>name</replaceable>]
[--deny-new-be | --require-new-be] [--be-name <replaceable>name</replaceable>]
[--sync-actuators | --sync-actuators-timeout <replaceable>timeout</replaceable>]
<replaceable>pkg_fmri_pattern</replaceable> ...</synopsis>
<synopsis>/usr/bin/pkg update [-fnvq] [-C <replaceable>n</replaceable>] [-g <replaceable>path_or_uri</replaceable>]...
[-r [[-z <replaceable>zonename</replaceable>]... | [-Z <replaceable>zonename</replaceable>]... ]]
[--accept] [--ignore-missing] [--licenses]
[--no-index] [--no-refresh] [--no-be-activate]
[--no-backup-be | --require-backup-be]
[--backup-be-name <replaceable>name</replaceable>]
[--deny-new-be | --require-new-be] [--be-name <replaceable>name</replaceable>]
[--reject <replaceable>pkg_fmri_pattern</replaceable>]...
[--sync-actuators | --sync-actuators-timeout <replaceable>timeout</replaceable>]
[<replaceable>pkg_fmri_pattern</replaceable> ...]</synopsis>
[--no-refresh] [<replaceable>pkg_fmri_pattern</replaceable> ...]</synopsis>
[<replaceable>pkg_fmri_pattern</replaceable> ...]</synopsis>
<synopsis>/usr/bin/pkg contents [-Hmr] [-a <replaceable>attribute</replaceable>=<replaceable>pattern</replaceable>]...
[-g <replaceable>path_or_uri</replaceable>]... [-o <replaceable>attribute</replaceable>[,<replaceable>attribute</replaceable>]...]...
[-s <replaceable>sort_key</replaceable>] [-t <replaceable>action_name</replaceable>[,<replaceable>action_name</replaceable>]...]...
[<replaceable>pkg_fmri_pattern</replaceable> ...]</synopsis>
[-o <replaceable>attribute</replaceable>[,<replaceable>attribute</replaceable>]...]... [-s <replaceable>repo_uri</replaceable>] <replaceable>query</replaceable></synopsis>
<synopsis>/usr/bin/pkg verify [-Hqv] [-p <replaceable>path</replaceable>]... [--parsable <replaceable>version</replaceable>]
[--unpackaged] [--unpackaged-only] [<replaceable>pkg_fmri_pattern</replaceable> ...]</synopsis>
[--no-backup-be | --require-backup-be]
[--backup-be-name <replaceable>name</replaceable>]
[--deny-new-be | --require-new-be] [--be-name <replaceable>name</replaceable>]
[--accept] [--licenses] [--parsable <replaceable>version</replaceable>] [--unpackaged] [<replaceable>pkg_fmri_pattern</replaceable> ...]</synopsis>
[--no-backup-be | --require-backup-be]
[--backup-be-name <replaceable>name</replaceable>]
[--deny-new-be | --require-new-be] [--be-name <replaceable>name</replaceable>]
(--tagged <replaceable>tag-name</replaceable> ... | <replaceable>path-to-file</replaceable> ...)</synopsis>
<synopsis>/usr/bin/pkg mediator [-aH] [-F <replaceable>format</replaceable>] [<replaceable>mediator</replaceable> ...]</synopsis>
[-V <replaceable>version</replaceable>] [--no-be-activate]
[--no-backup-be | --require-backup-be]
[--backup-be-name <replaceable>name</replaceable>]
[--deny-new-be | --require-new-be] [--be-name <replaceable>name</replaceable>]
<replaceable>mediator</replaceable> ...</synopsis>
[--no-backup-be | --require-backup-be]
[--backup-be-name <replaceable>name</replaceable>]
[--deny-new-be | --require-new-be] [--be-name <replaceable>name</replaceable>]
<replaceable>mediator</replaceable> ...</synopsis>
<synopsis>/usr/bin/pkg variant [-Haiv] [-F <replaceable>format</replaceable>] [<replaceable>variant_pattern</replaceable> ...]</synopsis>
<synopsis>/usr/bin/pkg change-variant [-nvq] [-C <replaceable>n</replaceable>] [-g <replaceable>path_or_uri</replaceable>]...
[-r [[-z <replaceable>zonename</replaceable>]... | [-Z <replaceable>zonename</replaceable>]... ]]
[--accept] [--licenses] [--no-be-activate]
[--no-backup-be | --require-backup-be]
[--backup-be-name <replaceable>name</replaceable>]
[--deny-new-be | --require-new-be] [--be-name <replaceable>name</replaceable>]
[--sync-actuators | --sync-actuators-timeout <replaceable>timeout</replaceable>]
<replaceable>variant_name</replaceable>=<replaceable>value</replaceable> ...</synopsis>
<synopsis>/usr/bin/pkg facet [-Haim] [-F <replaceable>format</replaceable>] [<replaceable>facet_pattern</replaceable> ...]</synopsis>
<synopsis>/usr/bin/pkg change-facet [-nvq] [-C <replaceable>n</replaceable>] [-g <replaceable>path_or_uri</replaceable>]...
[-r [[-z <replaceable>zonename</replaceable>]... | [-Z <replaceable>zonename</replaceable>]... ]]
[--accept] [--licenses] [--no-be-activate]
[--no-backup-be | --require-backup-be]
[--backup-be-name <replaceable>name</replaceable>]
[--deny-new-be | --require-new-be] [--be-name <replaceable>name</replaceable>]
[--sync-actuators | --sync-actuators-timeout <replaceable>timeout</replaceable>]
<replaceable>facet_name</replaceable>=(True|False|None) ...</synopsis>
<synopsis>/usr/bin/pkg freeze [-n] [-c <replaceable>reason</replaceable>] [<replaceable>pkg_fmri_pattern</replaceable> ...]</synopsis>
<synopsis>/usr/bin/pkg set-property <replaceable>propname</replaceable> <replaceable>propvalue</replaceable></synopsis>
<synopsis>/usr/bin/pkg add-property-value <replaceable>propname</replaceable> <replaceable>propvalue</replaceable></synopsis>
<synopsis>/usr/bin/pkg remove-property-value <replaceable>propname</replaceable> <replaceable>propvalue</replaceable></synopsis>
<synopsis>/usr/bin/pkg publisher [-HPn] [-F <replaceable>format</replaceable>] [<replaceable>publisher</replaceable> ...]</synopsis>
<synopsis>/usr/bin/pkg set-publisher [-Ped] [-c <replaceable>ssl_cert</replaceable>] [-k <replaceable>ssl_key</replaceable>]
[-g <replaceable>origin_to_add</replaceable> | --add-origin <replaceable>origin_to_add</replaceable>]...
[-G <replaceable>origin_to_remove</replaceable> | --remove-origin <replaceable>origin_to_remove</replaceable>]...
[-m <replaceable>mirror_to_add</replaceable> | --add-mirror <replaceable>mirror_to_add</replaceable>]...
[-M <replaceable>mirror_to_remove</replaceable> | --remove-mirror <replaceable>mirror_to_remove</replaceable>]...
[--disable] [--enable] [--no-refresh] [--reset-uuid]
[--non-sticky] [--sticky] [--search-after <replaceable>publisher</replaceable>]
[--search-before <replaceable>publisher</replaceable>] [--search-first]
[--approve-ca-cert <replaceable>path_to_CA</replaceable>]
[--revoke-ca-cert <replaceable>hash_of_CA_to_remove</replaceable>]
[--unset-ca-cert <replaceable>hash_of_CA_to_remove</replaceable>]
[--set-property <replaceable>name_of_property</replaceable>=<replaceable>value</replaceable>]
[--add-property-value <replaceable>name_of_property</replaceable>=<replaceable>value_to_add</replaceable>]
[--remove-property-value <replaceable>name_of_property</replaceable>=<replaceable>value_to_remove</replaceable>]
[--unset-property <replaceable>name_of_property_to_delete</replaceable>]
[--proxy <replaceable>proxy_to_use</replaceable>] <replaceable>publisher</replaceable></synopsis>
[-c <replaceable>ssl_cert</replaceable>] [-k <replaceable>ssl_key</replaceable>] [--non-sticky] [--sticky]
[--search-after <replaceable>publisher</replaceable>] [--search-before <replaceable>publisher</replaceable>]
[--search-first] [--approve-ca-cert <replaceable>path_to_CA</replaceable>]
[--revoke-ca-cert <replaceable>hash_of_CA_to_remove</replaceable>]
[--unset-ca-cert <replaceable>hash_of_CA_to_remove</replaceable>]
[--set-property <replaceable>name_of_property</replaceable>=<replaceable>value</replaceable>]
[--add-property-value <replaceable>name_of_property</replaceable>=<replaceable>value_to_add</replaceable>]
[--remove-property-value <replaceable>name_of_property</replaceable>=<replaceable>value_to_remove</replaceable>]
[--unset-property <replaceable>name_of_property_to_delete</replaceable>]
[--proxy <replaceable>proxy_to_use</replaceable>] [<replaceable>publisher</replaceable>]</synopsis>
[-n <replaceable>number</replaceable>] [-o <replaceable>column</replaceable>[,<replaceable>column</replaceable>]...]...
[-t <replaceable>time</replaceable> | <replaceable>time</replaceable>-<replaceable>time</replaceable>[,<replaceable>time</replaceable> | <replaceable>time</replaceable>-<replaceable>time</replaceable>]...]...</synopsis>
[--full | --partial | --user] [--zone]
[-c <replaceable>ssl_cert</replaceable>] [-k <replaceable>ssl_key</replaceable>]
[-g <replaceable>path_or_uri</replaceable> | --origin <replaceable>path_or_uri</replaceable>]...
[-m <replaceable>uri</replaceable> | --mirror <replaceable>uri</replaceable>]...
[--facet <replaceable>facet_name</replaceable>=(True|False)]... [--no-refresh]
[--set-property <replaceable>name_of_property</replaceable>=<replaceable>value</replaceable>]
[--variant <replaceable>variant_name</replaceable>=<replaceable>value</replaceable>]...
[(-p | --publisher) [<replaceable>name</replaceable>=]<replaceable>repo_uri</replaceable>] <replaceable>dir</replaceable></synopsis>
<synopsis>/usr/bin/pkg -R <replaceable>dir</replaceable> dehydrate [-nvq] [-p <replaceable>publisher</replaceable>]...</synopsis>
<synopsis>/usr/bin/pkg -R <replaceable>dir</replaceable> rehydrate [-nvq] [-p <replaceable>publisher</replaceable>]...</synopsis>
</refsynopsisdiv>
<refsect1 id="pkg-1-desc" role="description"><title></title>
<para><command>pkg</command> is the retrieval client for the Image Packaging
System. With a valid configuration, <command>pkg</command> can be invoked
to create locations for packages to be installed, called images, and install
packages into those images. Packages are published by publishers, who can
make their packages available at one or more repositories, or in package
archives. <command>pkg</command> retrieves packages from a publisher's
repository or package archives and installs the packages into an image.</para>
<para>Packages can only be installed into file systems that are part of a BE.
For example, on a default Oracle Solaris 11 installation, only datasets under
for package operations.</para>
<para>A publisher name identifies a person, group of persons, or an organization
as the source of one or more packages. To avoid publisher name collisions
and help identify the publisher, a best practice is to use a domain name that
represents the entity publishing the packages as a publisher name.</para>
<para>A repository is a location where clients can publish and retrieve package
content (files contained within the package such as programs and documents)
and metadata (information about the package such as its name and description).
<para><command>pkg</command> can also uninstall packages, refresh publisher
metadata (such as the list of available packages), validate package installation
in an image, and query the image for various tokens. These queries can also
be made of <literal>pkg</literal>(7) repositories.</para>
<para>Images can be of three types: full images, capable of providing a complete
system; partial images, which are linked to a full image (parent image), but
do not provide a complete system on their own; and user images.</para>
</refsect1>
<refsect1 role="options"><title></title>
<para>The following options are supported:</para>
<variablelist termlength="wholeline">
<varlistentry><term><option>?</option></term><term><option>-help</option></term>
<listitem><para>Display a usage message.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>R</option> <replaceable>dir</replaceable></term>
<listitem><para>Operate on the image rooted at <replaceable>dir</replaceable>.
If no directory was specified or determined based on environment, the default
is /. See the “Environment Variables” section for more information.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-no-network-cache</option></term>
<listitem><para>Request that any network servers (such as proxies) used during
the operation ignore cached data. Use this option to troubleshoot problems that
may be caused by caching proxies between the package client and network-based
package repositories.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="subcommands"><title></title>
<para>The following subcommands are supported:</para>
<variablelist termlength="wholeline">
<varlistentry><term><command>pkg refresh</command> [<option>q</option>] [<option>
-full</option>] [<replaceable>publisher</replaceable> ...]</term>
<listitem><para>Update the client’s list of available packages and publisher
metadata for all publishers.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>publisher</replaceable></term>
<listitem><para>Update the client’s list of available packages and publisher
metadata only for the specified publishers.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>q</option></term>
<listitem><para>Hide progress messages during the requested operation.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-full</option></term>
<listitem><para>Force a full retrieval of all publisher metadata, instead
of attempting an incremental update, and request that any proxies used during
the operation ignore cached data. This option exists for troubleshooting purposes
and should not be used on a regular basis.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg install</command> [<option>nvq</option>] [<option>C</option> <replaceable>n</replaceable>] [<option>g</option> <replaceable>path_or_uri</replaceable>]... [<option>r</option> [[<option>z</option> <replaceable>zonename</replaceable>]... | [<option>Z</option> <replaceable>zonename</replaceable>]... ]] [<option>-accept</option>] [<option>-licenses</option>] [<option>-no-index</option>] [<option>-no-refresh</option>] [<option>-no-be-activate</option>] [<option>-no-backup-be</option> | <option>-require-backup-be</option>] [<option>-backup-be-name</option> <replaceable>name</replaceable>] [<option>-deny-new-be</option> | <option>-require-new-be</option>] [<option>-be-name</option> <replaceable>name</replaceable>] [<option>-reject</option> <replaceable>pkg_fmri_pattern</replaceable>]... [<option>-sync-actuators</option> | <option>-sync-actuators-timeout</option> <replaceable>timeout</replaceable>] <replaceable>pkg_fmri_pattern</replaceable> ...</term>
<listitem><para>Install and update the specified packages to the newest version
that match <replaceable>pkg_fmri_pattern</replaceable> allowed by the packages
installed in the image. To explicitly request the latest version of a package,
use <literal>latest</literal> for the version portion of
<replaceable>pkg_fmri_pattern</replaceable>. For example, specify
<literal>vim@latest</literal>. The <replaceable>pkg_fmri_pattern</replaceable>
pattern can include the <literal>?</literal> and <literal>*</literal>
characters as <literal>glob</literal>(3C)-style wildcards to match one or more
packages.</para>
<para>Versions older or newer than what is already installed can be specified
to perform in-place downgrades or upgrades of specific packages. Updating
specific packages across package rename or obsolete boundaries is not supported.</para>
<para>Any preserved configuration files that are part of packages to be downgraded and that have
been changed since the original version was installed are renamed using the extension
<literal>.update</literal>. For more information about how the package system determines which files
to preserve, and how these files are preserved during package upgrades, see “File
Actions” in the <literal>pkg</literal>(7) man page.</para>
<para>Packages are selected based on publisher search order and stickiness.
See the <command>pkg publisher</command> and <command>pkg set-publisher</command> commands
for information about search order and stickiness. If the <replaceable>pkg_fmri_pattern
</replaceable> does not specify the publisher, the first publisher that provides
a matching package is used as the installation source. If that publisher does
not provide a version of the package that can be installed in this image,
then the installation operation fails. Use the <command>pkg list -a</command> command
to see which publishers provide a version of the package that can be installed
in this image.</para>
<para>If more than one <replaceable>pkg_fmri_pattern</replaceable> is specified,
and if any of the specified packages cannot be installed in this image, then
none of the specified packages will be installed.</para>
<para>Some configuration files might be renamed or replaced during the installation
process. For more information about how the package system determines which files
to preserve, and how they are preserved during package operations, see “File
Actions” in the <literal>pkg</literal>(7) man page.</para>
<para>If a package is on the avoid list, installing it removes it from that
list.</para>
<variablelist termlength="wholeline">
<varlistentry><term><option>C</option> <replaceable>n</replaceable></term>
<listitem><para>Specify the number of child images to update in parallel. When recursing into child images (usually installed <literal>solaris</literal> branded non-global zones), update at most <replaceable>n</replaceable> child images in parallel. The default number of child images to update in parallel is 1. If <replaceable>n</replaceable> is 0 or a negative number, all child images are updated in parallel. See also <envar>PKG_CONCURRENCY</envar> in the “Environment Variables” section.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>g</option> <replaceable>path_or_uri</replaceable></term>
<listitem><para>Temporarily add the specified package repository or archive
to the list of sources in the image from which to retrieve package data. Repositories
that require a client SSL certificate cannot be used with this option. This
option can be specified multiple times.</para>
<para>When deciding which version of a package to use, publishers configured
in the image, but not found in the specified <replaceable>path_or_uri</replaceable> sources,
take precedence. If the version of the package to be installed is provided
by a publisher configured in the image and by a <replaceable>path_or_uri</replaceable> source,
the client retrieves the content for that package from the <replaceable>path_or_uri
</replaceable> sources. After installation or update, any packages provided
by publishers not configured in the image are added to the image configuration
without an origin. Use the <command>pkg publisher</command> command to see
which publishers are configured in the image.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>n</option></term>
<listitem><para>Perform a trial run of the operation with no package changes
made.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>q</option></term>
<listitem><para>Hide progress messages during the requested operation.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>r</option></term>
<listitem><para>Run this operation in the global zone and also in all installed <literal>solaris</literal> branded non-global zones. The effect on the non-global zone is similar to logging into each non-global zone and running the command directly. Without this option, when you run <literal>pkg</literal> commands in the global zone, non-global zones are modified only to the extent required to keep them compatible with the global zone. With this option, the <literal>pkg</literal> operation is applied to all installed non-global zones except as limited by the <option>z</option> and <option>Z</option> options. Zones that are excluded by the <option>z</option> and <option>Z</option> options might still be modified if updates are required to keep them in sync with the global zone.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>z</option> <replaceable>zonename</replaceable></term>
<listitem><para>Run this operation only in the specified non-global zone. The <option>z</option> option can be specified multiple times. The <option>z</option> option can only be used with the <option>r</option> option. The <option>z</option> option cannot be used with the <option>Z</option> option.</para></listitem>
</varlistentry>
<varlistentry><term><option>Z</option> <replaceable>zonename</replaceable></term>
<listitem><para>Run this operation in all non-global zones except for the specified zone. The <option>Z</option> option can be specified multiple times. The <option>Z</option> option can only be used with the <option>r</option> option. The <option>Z</option> option cannot be used with the <option>z</option> option.</para></listitem>
</varlistentry>
<varlistentry><term><option>v</option></term>
<listitem><para>Issue verbose progress messages during the requested operation,
and display detailed planning information (such as changing facets, mediators,
and variants). This option can be specified multiple times to increase the
amount of planning information displayed.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-accept</option></term>
<listitem><para>Indicate that you agree to and accept the terms of the licenses
of the packages that are updated or installed. If you do not provide this
option, and any package licenses require acceptance, the installation operation
fails.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-licenses</option></term>
<listitem><para>Display all of the licenses for the packages that are installed
or updated as part of this operation. For updated packages, display the license
only if the license has changed.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-no-index</option></term>
<listitem><para>Do not update the search indexes after the operation has completed
successfully.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-no-refresh</option></term>
<listitem><para>Do not attempt to contact the repositories for the image’s
publishers to retrieve the newest list of available packages and other metadata.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-no-be-activate</option></term>
<listitem><para>If a boot environment is created, do not set it as the active
boot environment on the next boot. See the <command>beadm</command>(8) man
page for more information.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-no-backup-be</option></term>
<listitem><para>Do not create a backup boot environment.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-require-backup-be</option></term>
<listitem><para>Always create a backup boot environment if a new boot environment will not be created. Without this option, a backup boot environment is created based on image policy. See <literal>be-policy</literal> in “Image Properties” below for an explanation of when backup boot environments are created automatically.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-backup-be-name</option> <replaceable>name</replaceable></term>
<listitem><para>Name the created backup boot environment using the given argument.
Use of <option>-backup-be-name</option> implies <option>-require-backup-be</option>.
See also the <command>beadm</command>(8) man page.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-deny-new-be</option></term>
<listitem><para>Do not create a new boot environment. This operation is not
performed if a new boot environment is required.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-require-new-be</option></term>
<listitem><para>Always create a new boot environment. Without this option, a boot environment is created based on image policy. See <literal>be-policy</literal> in “Image Properties” below for an explanation of when boot environments are created automatically. This option cannot be combined with <option>-require-backup-be</option>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-be-name</option> <replaceable>name</replaceable></term>
<listitem><para>Rename the newly created boot environment to be the argument
given. Use of <option>-be-name</option> implies <option>-require-new-be</option>.
See also the <command>beadm</command>(8) man page.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-reject</option> <replaceable>pkg_fmri_pattern</replaceable></term>
<listitem><para>Prevent packages with names matching the given pattern from
being installed. If matching packages are already installed, they are removed
as part of this operation. Rejected packages that are the target of group
dependencies are placed on the avoid list. This option can be specified multiple
times.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-sync-actuators</option></term>
<listitem><para>Run SMF actuators synchronously. The <command>pkg</command>(1) command will not return until all SMF actuators have finished in the zone in which <command>pkg</command> was invoked (the global zone or a non-global zone).</para></listitem>
</varlistentry>
<varlistentry><term><option>-sync-actuators-timeout</option> <replaceable>timeout</replaceable></term>
<listitem><para>Run SMF actuators synchronously. If the actuators do not finish within the given <replaceable>timeout</replaceable> in seconds, <command>pkg</command>(1) will continue operation and exit with return code 8.</para></listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg exact-install</command> [<option>nvq</option>] [<option>C</option> <replaceable>n</replaceable>] [<option>g</option> <replaceable>path_or_uri</replaceable>]... [<option>-accept</option>] [<option>-licenses</option>] [<option>-no-index</option>] [<option>-no-refresh</option>] [<option>-no-be-activate</option>] [<option>-no-backup-be</option> | <option>-require-backup-be</option>] [<option>-backup-be-name</option> <replaceable>name</replaceable>] [<option>-deny-new-be</option> | <option>-require-new-be</option>] [<option>-be-name</option> <replaceable>name</replaceable>] [<option>-reject</option> <replaceable>pkg_fmri_pattern</replaceable>]... <replaceable>pkg_fmri_pattern</replaceable> ...</term>
<listitem><para>Install or update the specified packages as if installing onto a bare system. Any previously installed packages that are not specified on the command line and are not a dependency of the specified packages will be removed. This command ignores restrictions to not install packages that are on the avoid list and not update packages that are on the frozen list. Otherwise, this <command>exact-install</command> subcommand behaves the same way that the <command>install</command> subcommand behaves. To explicitly request the latest version of a package, use <literal>latest</literal> for the version portion of <replaceable>pkg_fmri_pattern</replaceable>. For example, specify <literal>vim@latest</literal>.</para>
<para>Packages are selected based on publisher search order and stickiness. See the <command>pkg publisher</command> and <command>pkg set-publisher</command> commands for information about search order and stickiness. If the <replaceable>pkg_fmri_pattern</replaceable> does not specify the publisher, the first publisher that provides a matching package is used as the installation source. If that publisher does not provide a version of the package that can be installed in this image, then the installation operation fails. Use the <command>pkg list -a</command> command to see which publishers provide a version of the package that can be installed in this image.</para>
<para>If more than one <replaceable>pkg_fmri_pattern</replaceable> is specified, and if any of the specified packages cannot be installed in this image, then none of the specified packages will be installed.</para>
<para>Some configuration files might be renamed or replaced during the installation process. For more information about how the package system determines which files to preserve, and how they are preserved during package operations, see “File Actions” in the <literal>pkg</literal>(7) man page.</para>
<para>If a package is on the avoid list, installing it removes it from that list.</para>
<para>For descriptions of options, see the <command>install</command> command above.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg uninstall</command> [<option>nvq</option>] [<option>C</option> <replaceable>n</replaceable>] [<option>r</option> [[<option>z</option> <replaceable>zonename</replaceable>]... | [<option>Z</option> <replaceable>zonename</replaceable>]... ]] [<option>-ignore-missing</option>] [<option>-no-index</option>] [<option>-no-be-activate</option>] [<option>-no-backup-be</option> | <option>-require-backup-be</option>] [<option>-backup-be-name</option> <replaceable>name</replaceable>] [<option>-deny-new-be</option> | <option>-require-new-be</option>] [<option>-be-name</option> <replaceable>name</replaceable>] [<option>-sync-actuators</option> | <option>-sync-actuators-timeout</option> <replaceable>timeout</replaceable>] <replaceable>pkg_fmri_pattern</replaceable> ...</term>
<listitem><para>Remove installed packages that match <replaceable>pkg_fmri_pattern
</replaceable>.</para>
<para>If a package is the subject of a group dependency, uninstalling it places
it on the avoid list. See the <command>avoid</command> subcommand below.</para>
<para>In the command output, note any messages that say a new boot environment has been created. If
a new boot environment has been created and activated, that is the environment that is booted by
default on next reboot. See the <command>beadm</command>(8) man page for information about managing
boot environments.</para>
<variablelist termlength="wholeline">
<varlistentry><term><option>-ignore-missing</option></term>
<listitem><para>Ignore packages that are not installed. Using this option prevents <command>pkg uninstall</command> from failing when attempting to uninstall a package that is not currently installed.</para>
</listitem>
</varlistentry>
</variablelist>
<para>For all other options, see the <command>install</command> command above.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg update</command> [<option>fnvq</option>] [<option>C</option> <replaceable>n</replaceable>] [<option>g</option> <replaceable>path_or_uri</replaceable>]... [<option>r</option> [[<option>z</option> <replaceable>zonename</replaceable>]... | [<option>Z</option> <replaceable>zonename</replaceable>]... ]] [<option>-accept</option>] [<option>-ignore-missing</option>] [<option>-licenses</option>] [<option>-no-index</option>] [<option>-no-refresh</option>] [<option>-no-be-activate</option>] [<option>-no-backup-be</option> | <option>-require-backup-be</option>] [<option>-backup-be-name</option> <replaceable>name</replaceable>] [<option>-deny-new-be</option> | <option>-require-new-be</option>] [<option>-be-name</option> <replaceable>name</replaceable>] [<option>-reject</option> <replaceable>pkg_fmri_pattern</replaceable>]... [<option>-sync-actuators</option> | <option>-sync-actuators-timeout</option> <replaceable>timeout</replaceable>] [<replaceable>pkg_fmri_pattern</replaceable> ...]</term>
<listitem><para>Update all packages installed in the current image to the
newest version allowed by the constraints imposed on the system by installed
packages and publisher configuration.</para>
<para>In the command output, note any messages that say a new boot environment
has been created. If a new boot environment has been created and activated,
that is the environment that is booted by default on next reboot if you do
not specify the <option>-no-be-activate</option> option. See the <command>beadm</command>(8)
man page for information about managing boot environments.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>pkg_fmri_pattern</replaceable></term>
<listitem><para>Update only the specified packages installed in the current
image. If asterisk (*) is one of the <replaceable>pkg_fmri_pattern</replaceable> patterns
provided, update all packages installed in the current image in the same way as when no <replaceable>pkg_fmri_pattern</replaceable> is provided.</para>
<para>To explicitly request the latest version of a package, use <literal>latest</literal> for
the version portion of <replaceable>pkg_fmri_pattern</replaceable>. For example,
specify <literal>vim@latest</literal>.</para>
<para>Versions older or newer than what is already installed can be specified
to perform in-place downgrades or upgrades of specific packages. Updating
specific packages across package rename or obsolete boundaries is not supported.</para>
<para>Any preserved configuration files that are part of packages to be downgraded and that have
been changed since the original version was installed are renamed using the extension
<literal>.update</literal>. For more information about how the package system determines which files
to preserve, and how these files are preserved during package upgrades, see “File
Actions” in the <literal>pkg</literal>(7) man page.</para>
<para>If more than one <replaceable>pkg_fmri_pattern</replaceable> is specified,
and if any of the specified packages cannot be updated in this image, then
none of the specified packages will be updated.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>f</option></term>
<listitem><para>Do not execute the client up-to-date check when updating all
installed packages.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-ignore-missing</option></term>
<listitem><para>Ignore packages that are not installed. Using this option prevents <command>pkg update</command> from failing when attempting to update a package that is not currently installed.</para>
</listitem>
</varlistentry>
</variablelist>
<para>For all other options, see the <command>install</command> command above.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg list</command> [<option>Hafnqsuv</option>] [<option>g</option> <replaceable>path_or_uri</replaceable>]... [<option>-no-refresh</option>] [<replaceable>pkg_fmri_pattern</replaceable> ...]</term>
<listitem><para>Display a list of all packages installed in the current image,
including information such as version and installed state. By default, package
variants for a different architecture or zone type are excluded. The usual
output is in three columns:</para>
<programlisting>NAME (PUBLISHER) VERSION IFO
<para>The first column contains the name of the package. If the publisher
from which the package is installed (or available, if not installed) is not
the first in the publisher search order, then the publisher name is listed
in parentheses after the package name. The second column contains the release
and branch versions of the package. See the <literal>pkg</literal>(7) man
page for information about release and branch versions and about variants.</para>
<itemizedlist>
<para>The last column contains a set of flags that show the status of the
package:</para>
<listitem><para>An <literal>i</literal> in the <literal>I</literal> column
shows that the package is installed.</para></listitem>
<listitem><para>An <literal>f</literal> in the <literal>F</literal> column
shows that the package is frozen.</para></listitem>
<listitem><para>An <literal>o</literal> in the <literal>O</literal> column
shows that the package is obsolete. An <literal>r</literal> in the <literal>O</literal> column
shows that the package has been renamed (a form of obsoletion).</para>
</listitem>
</itemizedlist>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>pkg_fmri_pattern</replaceable></term>
<listitem><para>List only the specified packages.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>H</option></term>
<listitem><para>Omit the headers from the listing.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>a</option></term>
<listitem><para>List installed packages and list the newest version of packages
that are not installed but could be installed in this image. Packages can
be installed if they are allowed by the installed incorporations and by the
image’s variants. If one or more patterns are specified, then the newest version
matching the specified pattern and allowed by any installed incorporations
and the image’s variants is listed. Without <option>a</option>, list only
installed packages.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>af</option></term>
<listitem><para>List all versions of all packages for all variants regardless
of incorporation constraints or installed state. To explicitly list the latest
version of a package when using these options, use <literal>latest</literal> for
the version portion of <replaceable>pkg_fmri_pattern</replaceable>. For example,
specify <literal>vim@latest</literal>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>g</option> <replaceable>path_or_uri</replaceable></term>
<listitem><para>Use the specified package repository or archive as the source
of package data for the operation. Repositories that require a client SSL
certificate cannot be used with this option. This option can be specified
multiple times. Use of <option>g</option> implies <option>a</option> if <option>n
</option> is not specified.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>n</option></term>
<listitem><para>Display the newest versions of all known packages, regardless
of installed state.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>q</option></term>
<listitem>
<para>Do not list any packages, but return failure if a fatal error occurs.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>s</option></term>
<listitem><para>Display a one-line short-form giving the package name and
summary. This option can be used with <option>a</option>, <option>n</option>,
or <option>u</option>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>u</option></term>
<listitem><para>List installed packages that have newer versions available.
This option cannot be used with <option>g</option>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>v</option></term>
<listitem><para>Show full package FMRIs, including publisher and complete
version, all in the first column (the VERSION column disappears). This option
can be used with <option>a</option>, <option>n</option>, or <option>u</option>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-no-refresh</option></term>
<listitem><para>Do not attempt to contact the repositories for the image’s
publishers to retrieve the newest list of available packages.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg info</command> [<option>lqr</option>] [<option>g</option> <replaceable>path_or_uri</replaceable>]... [<option>-license</option>] [<replaceable>pkg_fmri_pattern</replaceable> ...]</term>
<listitem><para>Display information about all packages installed in the current
image in a human-readable form.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>pkg_fmri_pattern</replaceable></term>
<listitem><para>Display information for only the specified packages.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>g</option> <replaceable>path_or_uri</replaceable></term>
<listitem><para>Use the specified package repository or archive as the source
of package data for the operation. Repositories that require a client SSL
certificate cannot be used with this option. This option can be specified
multiple times. Use of <option>g</option> implies <option>r</option>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>l</option></term>
<listitem><para>Only display information for installed packages. This is the
default.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>q</option></term>
<listitem>
<para>Do not display any package information, but return failure if a fatal error occurs.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>r</option></term>
<listitem><para>Match packages based on the newest available versions, retrieving
information for packages not currently installed (if necessary) from the repositories
of the image’s configured publishers. At least one package must be specified
when using this option. Without <option>r</option>, only installed packages
are displayed by default.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-license</option></term>
<listitem><para>Display the license texts for the packages. This option can
be combined with <option>l</option>, <option>q</option>, or <option>r</option>.
Return success if all <replaceable>pkg_fmri_pattern</replaceable> patterns
match known packages and have licenses. Return failure if one or more patterns
are unmatched or match packages that do not have licenses.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg contents</command> [<option>Hmr</option>]
[<option>a</option> <replaceable>attribute</replaceable>=<replaceable>pattern</replaceable>]...
[<option>g</option> <replaceable>path_or_uri</replaceable>]... [<option>o</option> <replaceable>
attribute</replaceable>[,<replaceable>attribute</replaceable>]...]... [<option>s</option> <replaceable>
sort_key</replaceable>] [<option>t</option> <replaceable>action_name</replaceable>[,<replaceable>
action_name</replaceable>]...]... [<replaceable>pkg_fmri_pattern</replaceable> ...]
</term>
<listitem><para>Display the contents (action attributes) of all packages installed
in the image. With no options, display the value of the <literal>path</literal> attribute
for actions installed in the current image, sorted alphabetically by attribute
value. If the <option>o</option> option is not specified, the key attributes, as described in <literal>pkg</literal>(7), of the related action name will be displayed instead. In addition, 'depend' actions will also include the 'type' attribute, and 'set' actions will include the 'value' attribute.</para>
<para>When more than one action name is specified, the default attributes are
the set of all attributes, as described above, of all the specified actions. For information about actions and their attributes, see “Actions” in the <literal>pkg</literal>(7) man page. See also the list of pseudo attribute names below.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>pkg_fmri_pattern</replaceable></term>
<listitem><para>Display contents of only the specified packages.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>H</option></term>
<listitem><para>Omit the headers from the output.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>a</option> <replaceable>attribute</replaceable>=<replaceable>
pattern</replaceable></term>
<listitem><para>Limit the output to those actions that have an <replaceable>attribute
</replaceable> named in the option argument with a value that matches the
(glob) <replaceable>pattern</replaceable> in the option argument. This option
can be specified multiple times. If multiple <option>a</option> options are
given, then actions that match any of them are displayed.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>g</option> <replaceable>path_or_uri</replaceable></term>
<listitem><para>Display information for packages that could be installed in
this image from the specified package repository or archive. Repositories
that require a client SSL certificate cannot be used with this option. Packages
that could be installed include packages that are currently installed and
other packages that satisfy criteria for installation in this image, such
as variant and facet restrictions. This option can be specified multiple times.
Use of <option>g</option> implies <option>r</option>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>m</option></term>
<listitem><para>Display all attributes of all actions in the specified packages,
including actions that could not be installed in this image.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>o</option> <replaceable>attribute</replaceable></term>
<listitem><para>Display the specified attributes, sorted according to the
values of the first attribute listed. The <option>o</option> option can be
specified multiple times, or multiple attributes can be specified as the argument
to one <option>o</option> option by separating the attribute names with commas.
Only actions that have the requested attributes are displayed.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>r</option></term>
<listitem><para>Display information for the newest available versions of packages
that could be installed in this image from the repositories of the publishers
configured in this image. Packages that could be installed include packages
that are currently installed and other packages that satisfy criteria for
installation in this image, such as variant and facet restrictions. At least
one package must be specified when using this option.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>s</option> <replaceable>sort_key</replaceable></term>
<listitem><para>Sort actions by the specified action attribute. If not provided,
the default is to sort by path or by the first attribute specified by the <option>
o</option> option. The <option>s</option> option can be specified multiple
times.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>t</option> <replaceable>action_name</replaceable></term>
<listitem><para>Only list the specified actions. The <option>t</option> option
can be specified multiple times, or multiple actions can be specified as the
argument to one <option>t</option> option by separating the action names with
commas. The value of <replaceable>action_name</replaceable> is one of the
actions listed in “Actions” in the <literal>pkg</literal>(7) man
page, such as <literal>file</literal>, <literal>directory</literal>, <literal>driver
</literal>, <literal>depend</literal>, <literal>set</literal>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Several special pseudo attribute names are available for convenience:</para>
<variablelist termlength="wholeline">
<listitem><para>The value of the action’s hash, if the action carries a payload.</para>
</listitem>
</varlistentry>
<listitem><para>The value of the action’s key attribute. For example, for
a <literal>file</literal> action, the key attribute is the path to the file.
Some actions do not have a key attribute.</para>
</listitem>
</varlistentry>
<listitem><para>The name of the action. For example, for a file action, this
is <literal>file</literal>.</para>
</listitem>
</varlistentry>
<listitem><para>All attributes of matching actions.</para>
</listitem>
</varlistentry>
<listitem><para>The full FMRI of the package containing the action, such as <literal>pkg://solaris/group/feature/amp@0.5.11,5.11-0.175.0.0.0.2.1:20120705T153434Z</literal>.</para>
</listitem>
</varlistentry>
<listitem><para>The name of the package containing the action, such as
</listitem>
</varlistentry>
<listitem><para>The publisher of the package containing the action, such as <literal>
solaris</literal>.</para>
</listitem>
</varlistentry>
<listitem><para>The short form FMRI of the package containing the action,
such as <literal>pkg://solaris/group/feature/amp@0.5.11,5.11-0.175</literal></para>
</listitem>
</varlistentry>
</variablelist>
<para>The <command>contents</command> and <command>search</command> subcommands
are related: Both query the system for the contents of packages. The <command>contents
</command> subcommand displays actions in one or more installed or installable
packages, filtering the output based on the specified options. The <command>search
</command> subcommand approaches the query from the other direction, displaying
the names of all packages that contain a user-supplied token.</para>
<para>Each subcommand is capable of formulating some queries of which the
other is capable. Care should be taken in choosing the subcommand, as a given
query can be more naturally formulated in one than in the other.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg search</command> [<option>HIaflpr</option>]
[<option>o</option> <replaceable>attribute</replaceable>[,<replaceable>attribute</replaceable>]...]...
[<option>s</option> <replaceable>repo_uri</replaceable>] <replaceable>query</replaceable></term>
<listitem><para>Search for actions that match <replaceable>query</replaceable>, and display the matching
search index, action name, action value, and package name. See the description of
<replaceable>query</replaceable> below. Some searches might yield duplicate results.</para>
<variablelist termlength="wholeline">
<varlistentry><term><option>H</option></term>
<listitem><para>Omit the headers from the output.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>I</option></term>
<listitem><para>Use a case-sensitive search.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>a</option></term>
<listitem><para>Perform the search and display information about the matching
actions. This is the default.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>f</option></term>
<listitem><para>Show all results, regardless of package version. By default, <command>search</command> prunes
results from packages older than the currently installed version and from package versions excluded
by current incorporations.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>l</option></term>
<listitem><para>Search the image’s installed packages.</para>
<para>Both <option>l</option> and <option>r</option> (or <option>s</option>)
can be specified together, in which case both local and remote searches are
performed.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>o</option> <replaceable>attribute</replaceable></term>
<listitem><para>Specify the columns to include in the output. The <option>o</option> option can be specified multiple
times, or multiple attributes can be specified as the argument to one <option>o</option> option by
separating the attribute names with commas. In addition to the pseudo attributes outlined above, the
following attributes are defined for search results. These attributes help show why a particular
result was a match:</para>
<variablelist termlength="wholeline">
<listitem><para>The string that matched the search query.</para>
</listitem>
</varlistentry>
<listitem><para>The attribute that contained the string that matched the search
query.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><option>p</option></term>
<listitem><para>Display packages that have some actions that match each query
term. Using this option is equivalent to putting angle brackets (<literal><></literal>)
around each term in the query. See <replaceable>query</replaceable> below
for more description of the <literal><></literal> operator.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>r</option></term>
<listitem><para>Search the repositories corresponding to the image’s publishers.
This is the default.</para>
<para>Both <option>l</option> and <option>r</option> (or <option>s</option>)
can be specified together, in which case both local and remote searches are
performed.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>s</option> <replaceable>repo_uri</replaceable></term>
<listitem><para>Search the <literal>pkg</literal>(7) repository located at
the given URI. This can be specified multiple times. Package archives are
not supported.</para>
</listitem>
</varlistentry>
<varlistentry><term><replaceable>query</replaceable></term>
<listitem><para>By default, <replaceable>query</replaceable> is interpreted as a series of terms to be matched
exactly and multiple terms are ANDed.</para>
<para>AND and OR are supported.</para>
<para>The <literal>?</literal> and <literal>*</literal> characters can be used as <literal>glob</literal>(3C)‐style wildcards, allowing more flexible query matches.</para>
<para>In addition to simple token matching and wildcard search, a more complicated
query language is supported. Phrases can be searched for by using single or
double quotation marks (<literal>'</literal> or <literal>"</literal>). Be
sure to take your shell into account so that <command>pkg</command> actually
sees the <literal>'</literal> or <literal>"</literal>.</para>
<para>Which tokens are indexed is action-dependent, but can include content
hashes and path names. For information about actions and their attributes,
see “Actions” in the <literal>pkg</literal>(7) man page. See also
the list of pseudo attribute names in <command>pkg contents</command> and <option>
o</option> above.</para>
<para>Structured queries are supported with the following syntax:</para>
<programlisting><replaceable>pkg_name</replaceable>:<replaceable>action_name</replaceable>:<replaceable>
index</replaceable>:<replaceable>token</replaceable></programlisting>
<para>The value of <replaceable>action_name</replaceable> is one of the actions
listed in “Actions” in the <literal>pkg</literal>(7) man page.
The <replaceable>index</replaceable> is an attribute of the action. The value
of <replaceable>index</replaceable> must match <replaceable>token</replaceable>.</para>
<para>Not all action attributes are searchable. For example, <literal>mode</literal> is
an attribute of the <literal>file</literal> action, but <literal>mode</literal> is
not a valid value for <replaceable>index</replaceable>.</para>
<para>Some values for <replaceable>index</replaceable> are not action attributes
but are values derived from other attributes. For example, <replaceable>index</replaceable> can
be <literal>basename</literal>, which is not an attribute of any action but
is derived from the <literal>path</literal> attribute of the <literal>file</literal> or <literal>
dir</literal> action by taking the last component of the path.</para>
<para>Different action types have different valid values for <replaceable>index</replaceable>.
This documentation does not list all possible values. Some of the more useful <replaceable>
index</replaceable> values are <literal>basename</literal> and <literal>path</literal> for
file system actions, the dependency type (for example, <literal>require</literal>, <literal>
optional</literal>, <literal>group</literal>) for <literal>depend</literal> actions,
and <literal>driver_name</literal> and <literal>alias</literal> for <literal>driver
</literal> actions.</para>
<para>One special value for <replaceable>index</replaceable> is the value
of a <literal>name</literal> attribute for a <literal>set</literal> action.
In this case, <replaceable>token</replaceable> is matched against the value
of the <literal>value</literal> attribute that corresponds to the specified <literal>
name</literal> attribute. For example, the following search finds packages
the “Examples” section, see the example of finding SMF services.</para>
<para>Missing fields in a structured query are implicitly wildcarded. A search
for <literal>basename:pkg</literal> matches all actions in all packages that
have an <replaceable>index</replaceable> of <literal>basename</literal> and
that match the <replaceable>token</replaceable> <literal>pkg</literal>, as
shown in the following partial output:</para>
<screen>$ <userinput>pkg search basename:pkg</userinput>
INDEX ACTION VALUE PACKAGE
<para>Adding another field narrows the search, as shown in the following complete
output:</para>
<screen>$ <userinput>pkg search file:basename:pkg</userinput>
INDEX ACTION VALUE PACKAGE
<para>Explicit wildcards are supported in the <replaceable>pkg_name</replaceable> and <replaceable>
token</replaceable> fields. The <replaceable>action_name</replaceable> and <replaceable>
index</replaceable> must match exactly.</para>
<para>See the “Examples” section for examples of searching for
files and dependencies.</para>
<para>To convert actions to the packages that contain those actions, use <literal>
<></literal>, as shown in the following partial output:</para>
<screen>$ <userinput>pkg search \<pkg\></userinput>
PACKAGE PUBLISHER
pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 solaris
pkg:/package/svr4@0.5.11-0.175.0.0.0.2.1 solaris</screen>
<para>With the <option>a</option> option (and by default), searching for <literal>
token</literal> results in information about the actions that match <literal>token
</literal>, while searching for <literal><token></literal> results in a
list of packages that contain actions that match <literal>token</literal>.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg verify</command> [<option>Hqv</option>] [<option>p</option> <replaceable>path</replaceable>]... [<option>-parsable</option> <replaceable>version</replaceable>] [<option>-unpackaged</option>]
[<option>-unpackaged-only</option>] [<replaceable>pkg_fmri_pattern</replaceable> ...]</term>
<listitem><para>Validate the installation of all packages installed in the
current image. If current signature policy for related publishers is not <literal>
ignore</literal>, the signatures of each package are validated based on policy.
See <literal>signature-policy</literal> in “Image Properties”
below for an explanation of how signature policies are applied.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>pkg_fmri_pattern</replaceable></term>
<listitem><para>Validate the installation of only the specified packages installed
in the current image. When used with <option>p</option>, only the matching actions
from the specified packages will be verified.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>H</option></term>
<listitem><para>Omit the headers from the verification output.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>v</option></term>
<listitem><para>Include informational messages regarding packages. See also the
description of the <option>v</option> option for the install command above.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>p</option> <replaceable>path</replaceable></term>
<listitem><para>Validate individual files, links or directories by specifying the
paths. Paths specified are assumed to be relative to the <literal>/</literal> of
the image on which the verify is performed. If a directory or a link is specified,
only the matching action for the directory or the link will be verified.</para>
<para>If no <replaceable>pkg_fmri_pattern</replaceable>s are provided when specifying
paths, all matching actions from packages installed in the image will be verified.
This option cannot be combined with <option>-unpackaged</option> or
<option>-unpackaged-only</option>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-parsable</option> <replaceable>version</replaceable></term>
<listitem><para>Parsable output. The supported version is 0. Use of this option
implies <option>q</option>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-unpackaged</option></term>
<listitem><para>Report unpackaged contents in addition to general verification
output. Current unpackaged contents includes unpackaged files and unpackaged
directories. This option can be combined with <option>-parsable</option>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-unpackaged-only</option></term>
<listitem><para>Report only unpackaged contents. This option excludes general
verification output and only reports the unpackaged files and directories.
This option can be combined with <option>-parsable</option>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>For all other options, see the <command>install</command> command above.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg fix</command> [<option>HnvqP</option>]
[<option>-no-be-activate</option>]
[<option>-no-backup-be</option> | <option>-require-backup-be</option>]
[<option>-backup-be-name</option> <replaceable>name</replaceable>]
[<option>-deny-new-be</option> | <option>-require-new-be</option>] [<option>-be-name</option> <replaceable>name</replaceable>]
[<option>-accept</option>] [<option>-licenses</option>] [<option>-parsable</option> <replaceable>version</replaceable>] [<option>-unpackaged</option>]
[<replaceable>pkg_fmri_pattern</replaceable> ...]</term>
<listitem><para>Fix any errors reported by <command>pkg verify</command>.
Verification of installed package content is based on a custom content analysis
that might return different results than those of other programs.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>pkg_fmri_pattern</replaceable></term>
<listitem><para>Fix errors reported by <command>pkg verify</command> for only
the specified packages installed in the current image.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>H</option></term>
<listitem><para>Omit the headers from the verification output.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>v</option></term>
<listitem><para>Include informational messages regarding packages. See also the
description of the <option>v</option> option for the install command above.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-accept</option></term>
<listitem><para>Indicate that you agree to and accept the terms of the licenses
of the packages that are updated or installed. If you do not provide this
option, and any package licenses require acceptance, the operation fails.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-licenses</option></term>
<listitem><para>Display all of the licenses for the packages that are installed
or updated as part of this operation. For updated packages, display the license
only if the license has changed.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-parsable</option> <replaceable>version</replaceable></term>
<listitem><para>Parsable output. The supported version is 0. Use of this option
implies <option>-q</option>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-unpackaged</option></term>
<listitem><para>report unpackaged contents in addition to general output.</para>
</listitem>
</varlistentry>
</variablelist>
<para>For all other options, see the <command>install</command> command above.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg revert</command> [<option>nv</option>] [<option>
-no-be-activate</option>] [<option>-no-backup-be</option> | <option>-require-backup-be
</option>] [<option>-backup-be-name</option> <replaceable>name</replaceable>]
[<option>-deny-new-be</option> | <option>-require-new-be</option>] [<option>-be-name
</option> <replaceable>name</replaceable>] (<option>-tagged</option> <replaceable>
tag-name</replaceable> ... | <replaceable>path-to-file</replaceable> ...)</term>
<listitem><para>Revert files delivered by <literal>pkg</literal>(7) packages to their as-delivered condition. File ownership and protections are also restored.</para>
<caution><para>Reverting some editable files to their default values can make
the system unbootable, or cause other malfunctions.</para></caution>
<variablelist termlength="wholeline">
<varlistentry><term><option>-tagged</option> <replaceable>tag-name</replaceable></term>
<listitem><para>Revert all files tagged with <replaceable>tag-name</replaceable>, and remove any unpackaged
files or directories that are under directories with this tag and that match
<replaceable>pattern</replaceable>. See the description of the <literal>revert-tag</literal>
attribute in “File Actions” and “Directory Actions” in the
<literal>pkg</literal>(7) man page for more information about <literal>tag-name</literal> and
<replaceable>pattern</replaceable>.</para>
</listitem>
</varlistentry>
<varlistentry><term><replaceable>path-to-file</replaceable></term>
<listitem><para>Revert the specified files.</para>
</listitem>
</varlistentry>
</variablelist>
<para>For all other options, see the <command>install</command> command above.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg mediator</command> [<option>aH</option>] [<option>F</option> <replaceable>format</replaceable>] [<replaceable>mediator</replaceable> ...]
</term>
of all mediators.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>mediator</replaceable></term>
of only the specified mediators.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>F</option> <replaceable>format</replaceable></term>
<listitem><para>Specify an alternative output format. The value of <replaceable>format</replaceable> can be <literal>tsv</literal> (Tab Separated Values), <literal>json</literal> (JavaScript Object Notation as a single line), or json-formatted (JavaScript Object Notation, formatted for readability).</para></listitem>
</varlistentry>
<varlistentry><term><option>H</option></term>
<listitem><para>Omit the headers from the listing.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>a</option></term>
<listitem><para>List the mediations that can be set for currently installed
packages.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg set-mediator</command> [<option>nv</option>] [<option>I</option> <replaceable>implementation</replaceable>] [<option>V</option> <replaceable>version</replaceable>] [<option>-no-be-activate</option>] [<option>-no-backup-be</option> | <option>-require-backup-be</option>] [<option>-backup-be-name</option> <replaceable>name</replaceable>] [<option>-deny-new-be</option> | <option>-require-new-be</option>] [<option>-be-name</option> <replaceable>name</replaceable>] <replaceable>mediator</replaceable> ...</term>
in the current image.</para>
<variablelist termlength="wholeline">
<varlistentry><term><option>I</option> <replaceable>implementation</replaceable></term>
<listitem><para>Set the implementation of the mediated interface to use. By
default, if no version is specified, all implementation versions are allowed.
To specify an implementation with no version, append an at sign (@).</para>
</listitem>
</varlistentry>
<varlistentry><term><option>V</option> <replaceable>version</replaceable></term>
<listitem><para>Set the version of the mediated interface to use.</para>
</listitem>
</varlistentry>
</variablelist>
available, any links using the specified mediators are removed.</para>
<para>For all other options, see the <command>install</command> command above.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg unset-mediator</command> [<option>nvIV</option>]
[<option>-no-be-activate</option>] [<option>-no-backup-be</option> | <option>-require-backup-be
</option>] [<option>-backup-be-name</option> <replaceable>name</replaceable>]
[<option>-deny-new-be</option> | <option>-require-new-be</option>] [<option>-be-name
</option> <replaceable>name</replaceable>] <replaceable>mediator</replaceable> ...
</term>
mediators to the system default.</para>
<variablelist termlength="wholeline">
<varlistentry><term><option>I</option></term>
<listitem><para>Revert only the implementation of the mediated interface.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>V</option></term>
<listitem><para>Revert only the version of the mediated interface.</para>
</listitem>
</varlistentry>
</variablelist>
<para>For all other options, see the <command>install</command> command above.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg variant</command> [<option>Haiv</option>] [<option>F</option> <replaceable>format</replaceable>] [<replaceable>variant_pattern</replaceable> ...]</term>
<listitem><para>Display the current values of all variants set in this image.
See “Facets and Variants” in the <literal>pkg</literal>(7) man
page for more information about variants.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>variant_pattern</replaceable></term>
<listitem><para>Display the current values of only the specified variants
set in this image.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>F</option> <replaceable>format</replaceable></term>
<listitem><para>Specify an alternative output format. For a description, see the <command>pkg mediator</command> command.</para></listitem>
</varlistentry>
<varlistentry><term><option>H</option></term>
<listitem><para>Omit the headers from the listing.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>a</option></term>
<listitem>
<para>Display all variants explicitly set in the image and all variants that are listed in installed
packages. The <option>a</option> option cannot be combined with the <option>i</option>
option.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>i</option></term>
<listitem>
<para>Display all variants that are listed in installed packages. The <option>i</option> option
cannot be combined with the <option>a</option> option.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>v</option></term>
<listitem>
<para>Display the possible variant values that can be set for installed packages. The
<option>v</option> option can be combined with the <option>a</option> or <option>i</option>
option.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg change-variant</command> [<option>nvq</option>] [<option>C</option> <replaceable>n</replaceable>] [<option>g</option> <replaceable>path_or_uri</replaceable>]... [<option>r</option> [[<option>z</option> <replaceable>zonename</replaceable>]... | [<option>Z</option> <replaceable>zonename</replaceable>]... ]] [<option>-accept</option>] [<option>-licenses</option>] [<option>-no-be-activate</option>] [<option>-no-backup-be</option> | <option>-require-backup-be</option>] [<option>-backup-be-name</option> <replaceable>name</replaceable>] [<option>-deny-new-be</option> | <option>-require-new-be</option>] [<option>-be-name</option> <replaceable>name</replaceable>] [<option>-sync-actuators</option> | <option>-sync-actuators-timeout</option> <replaceable>timeout</replaceable>] <replaceable>variant_name</replaceable>=<replaceable>value</replaceable> ...</term>
<listitem><para>Change the values of the specified variants set in the current
image.</para>
<para>Changing the value of a variant can cause package content to be removed,
updated, or installed. Changing a variant value can also cause entire packages
to be installed, updated, or removed to satisfy the new image configuration.
See “Facets and Variants” in the <literal>pkg</literal>(7) man
page for more information about variants.</para>
<para>For descriptions of options, see the <command>install</command> command
above.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg facet</command> [<option>Haim</option>] [<option>F</option> <replaceable>format</replaceable>] [<replaceable>facet_pattern</replaceable> ...]</term>
<listitem><para>Display the current values and source of all facets that either have been set locally in this
image by using the <command>pkg change-facet</command> command or have been inherited from a
parent image (such as a non-global zone inheriting the facet setting from the global zone). See “Facets and Variants” in the <literal>pkg</literal>(7) man page for
more information about facets.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>facet_pattern</replaceable></term>
<listitem><para>Display the current values of only the specified facets set
in this image.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>F</option> <replaceable>format</replaceable></term>
<listitem><para>Specify an alternative output format. For a description, see the <command>pkg mediator</command> command.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>H</option></term>
<listitem>
<para>Omit the headers from the listing.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>a</option></term>
<listitem>
<para>Display all facets explicitly set in the image and all facets that are listed in installed
packages. The <option>a</option> option cannot be combined with the <option>i</option>
option.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>i</option></term>
<listitem>
<para>Display all facets that are listed in installed packages. The <option>i</option> option cannot
be combined with the <option>a</option> option.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>m</option></term>
<listitem>
<para>Include masked facets in the output. Display a column that indicates which, if any, facets are masked. Masked facets are facets set locally in an image (by using the <command>pkg change-facet</command> command) that are hidden by an inherited facet with the same name.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg change-facet</command> [<option>nvq</option>] [<option>C</option> <replaceable>n</replaceable>] [<option>g</option> <replaceable>path_or_uri</replaceable>]... [<option>r</option> [[<option>z</option> <replaceable>zonename</replaceable>]... | [<option>Z</option> <replaceable>zonename</replaceable>]... ]] [<option>-accept</option>] [<option>-licenses</option>] [<option>-no-be-activate</option>] [<option>-no-backup-be</option> | <option>-require-backup-be</option>] [<option>-backup-be-name</option> <replaceable>name</replaceable>] [<option>-deny-new-be</option> | <option>-require-new-be</option>] [<option>-be-name</option> <replaceable>name</replaceable>] [<option>-sync-actuators</option> | <option>-sync-actuators-timeout</option> <replaceable>timeout</replaceable>] <replaceable>facet_name</replaceable>=(<literal>True</literal>|<literal>False</literal>|<literal>None</literal>) ...</term>
<listitem><para>Change the values of the specified facets set in the current
image. The changes also appear in any images that inherit these facets, such as non-global zones.</para>
<para>Facets can be set to <literal>True</literal> or <literal>False</literal>.
Setting a facet to <literal>None</literal> applies the default value of
<literal>True</literal> to that facet; thus, any actions subject to the facet
will be installed. See “Actions” in the <literal>pkg</literal>(7)
man page for information about actions.</para>
<para>Changing the value of a facet can cause package content to be removed,
updated, or installed. Changing a facet value can also cause entire packages
to be installed, updated, or removed to satisfy the new image configuration.
See “Facets and Variants” in the <literal>pkg</literal>(7) man
page for more information about facets.</para>
<para>For descriptions of options, see the <command>install</command> command
above.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg avoid</command> [<replaceable>pkg_fmri_pattern</replaceable> ...]
</term>
<listitem><para>Display each avoided package along with any packages that
have a group dependency on that package.</para>
<para>Packages that are on the avoid list are installed if needed to satisfy a required dependency. If that dependency is removed, the package is uninstalled.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>pkg_fmri_pattern</replaceable></term>
<listitem><para>Avoid the specified packages if they are the target of a group
dependency by placing the package names that currently match the specified
patterns on the avoid list. Only packages that are not currently installed
can be avoided. If a package is currently the target of a group dependency,
uninstalling the package places it on the avoid list.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg unavoid</command> [<replaceable>pkg_fmri_pattern
</replaceable> ...]</term>
<listitem><para>Display the list of avoided packages.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>pkg_fmri_pattern</replaceable></term>
<listitem><para>Remove the specified packages from the avoid list. Packages
on the avoid list that match an installed package’s group dependency cannot
be removed using this subcommand. To remove a package from the avoid list
that matches a group dependency, install the package.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg freeze</command> [<option>n</option>] [<option>c</option> <replaceable>reason</replaceable>] [<replaceable>pkg_fmri_pattern</replaceable> ...]
</term>
<listitem><para>Display information about currently frozen packages: package
names, versions, when the package was frozen, and any associated reasons for
freezing the packages.</para>
<para>Freezing a package does not prevent removal of the package. No warning
is displayed if the package is removed.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>pkg_fmri_pattern</replaceable></term>
<listitem><para>Freeze the specified packages to the specified versions. If
no version is given, the package must be installed and is frozen at that installed
version. Freezing a package that is already frozen replaces the freeze version
with the newly specified version.</para>
<para>When a package that is frozen is installed or updated, it must end up
at a version that matches the version at which it was frozen. For example,
if a package was frozen at 1.2, then it could be updated to 1.2.1, 1.2.9,
1.2.0.0.1, and so on. That package could not end up at 1.3, or 1.1. A publisher
presented in the <replaceable>pkg_fmri_pattern</replaceable> is used to find
matching packages. However, publisher information is not recorded as part
of the freeze. A package is frozen with respect to its version only, not its
publisher.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>c</option> <replaceable>reason</replaceable></term>
<listitem><para>Record the <replaceable>reason</replaceable> with the packages
that are frozen. The reason is shown if a freeze prevents an installation
or update from succeeding.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>n</option></term>
<listitem><para>Perform a trial run of the freeze operation, displaying the
list of packages that would be frozen without freezing any packages.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg unfreeze</command> [<option>n</option>] [<replaceable>
pkg_name_pattern</replaceable> ...]</term>
<listitem><para>Display information about currently frozen packages: package
names, versions, when the package was frozen, and any associated reasons for
freezing the packages.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>pkg_fmri_pattern</replaceable></term>
<listitem><para>Remove the constraints that freezing imposes from the specified
packages. Any versions provided are ignored.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>n</option></term>
<listitem><para>Perform a trial run of the unfreeze operation, displaying
the list of packages that would be unfrozen without unfreezing any packages.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg property</command> [<option>H</option>] [<replaceable>
propname</replaceable> ...]</term>
<listitem><para>Display the names and values of all image properties. See “Image
Properties” below for descriptions of image properties.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>propname</replaceable></term>
<listitem><para>Display the names and values for only the specified properties.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>H</option></term>
<listitem><para>Omit the headers from the listing.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg set-property</command> <replaceable>propname</replaceable> <replaceable>
propvalue</replaceable></term>
<listitem><para>Update an existing image property or add a new image property.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg add-property-value</command> <replaceable>propname
</replaceable> <replaceable>propvalue</replaceable></term>
<listitem><para>Add a value to an existing image property or add a new image
property.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg remove-property-value</command> <replaceable>propname
</replaceable> <replaceable>propvalue</replaceable></term>
<listitem><para>Remove a value from an existing image property.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg unset-property</command> <replaceable>propname</replaceable> ...
</term>
<listitem><para>Remove an existing image property or properties.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg publisher</command> [<option>HPn</option>] [<option>F</option> <replaceable>format</replaceable>] [<replaceable>publisher</replaceable> ...]
</term>
<listitem><para>Display the list of all publishers in order of search
preference. The following information is displayed for each publisher: name,
attributes such as non-sticky and disabled, type (origin or mirror), online
status, proxy, and location URI. Proxy information is shown only as T (true) or
F (false) under the column labeled P. To show the proxy value for a publisher
with T in the P column, use the <literal>-F tsv</literal> option or specify the
publisher name argument. Proxies shown by the <command>pkg publisher</command>
command were set by using the <option>-proxy</option> option of the
<command>pkg set-publisher</command> command. Proxies set by using an
<envar>http_proxy</envar> environment variable are not shown by the
<command>pkg publisher</command> command.</para>
<variablelist termlength="wholeline">
<varlistentry><term><replaceable>publisher</replaceable></term>
<listitem><para>Display detailed configuration for only the specified publishers.
Additional information displayed includes the proxy URI, key, and certificate
for each origin or mirror URI, the client UUID, and the time the catalog was
last updated.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>F</option> <replaceable>format</replaceable></term>
<listitem><para>Specify an alternative output format. The value of <replaceable>format</replaceable> can only be <literal>tsv</literal> (Tab Separated Values).</para></listitem>
</varlistentry>
<varlistentry><term><option>H</option></term>
<listitem><para>Omit the headers from the listing.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>P</option></term>
<listitem><para>Display only the first publisher in the publisher search order.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>n</option></term>
<listitem><para>Display only enabled publishers.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg set-publisher</command> [-Ped] [<option>c</option> <replaceable>ssl_cert</replaceable>] [<option>k</option> <replaceable>ssl_key</replaceable>] [<option>g</option> <replaceable>origin_to_add</replaceable> | <option>-add-origin</option> <replaceable>origin_to_add</replaceable>]... [<option>G</option> <replaceable>origin_to_remove</replaceable> | <option>-remove-origin</option> <replaceable>origin_to_remove</replaceable>]... [<option>m</option> <replaceable>mirror_to_add</replaceable> | <option>-add-mirror</option> <replaceable>mirror_to_add</replaceable>]... [<option>M</option> <replaceable>mirror_to_remove</replaceable> | <option>-remove-mirror</option> <replaceable>mirror_to_remove</replaceable>]... [<option>-disable</option>] [<option>-enable</option>] [<option>-no-refresh</option>] [<option>-reset-uuid</option>] [<option>-non-sticky</option>] [<option>-sticky</option>] [<option>-search-after</option> <replaceable>publisher</replaceable>] [<option>-search-before</option> <replaceable>publisher</replaceable>] [<option>-search-first</option>] [<option>-approve-ca-cert</option> <replaceable>path_to_CA</replaceable>] [<option>-revoke-ca-cert</option> <replaceable>hash_of_CA_to_remove</replaceable>] [<option>-unset-ca-cert</option> <replaceable>hash_of_CA_to_remove</replaceable>] [<option>-set-property</option> <replaceable>name_of_property</replaceable>=<replaceable>value</replaceable>] [<option>-add-property-value</option> <replaceable>name_of_property</replaceable>=<replaceable>value_to_add</replaceable>] [<option>-remove-property-value</option> <replaceable>name_of_property</replaceable>=<replaceable>value_to_remove</replaceable>] [<option>-unset-property</option> <replaceable>name_of_property_to_delete</replaceable>] [<option>-proxy</option> <replaceable>proxy_to_use</replaceable>] <replaceable>publisher</replaceable></term>
<listitem><para>Update an existing publisher or add a publisher. If no options
affecting search order are specified, new publishers are appended to the search
order and are thus searched last.</para>
<variablelist termlength="wholeline">
<varlistentry><term><option>G</option> <replaceable>origin_to_remove</replaceable></term>
<term><option>-remove-origin</option> <replaceable>origin_to_remove</replaceable></term>
<listitem><para>Remove the URI or path from the list of origins for the given
publisher. The special value <literal>*</literal> can be used to remove all
origins.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>M</option> <replaceable>mirror_to_remove</replaceable></term>
<term><option>-remove-mirror</option> <replaceable>mirror_to_remove</replaceable></term>
<listitem><para>Remove the URI from the list of mirrors for the given publisher.
The special value <literal>*</literal> can be used to remove all mirrors.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>P</option></term><term><option>-search-first</option></term>
<listitem><para>Set the specified publisher first in the search order. When
installing new packages, this publisher is searched first. Updates to already
installed packages come from the same publisher that originally provided the
package as long as that publisher remains sticky.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>c</option> <replaceable>ssl_cert</replaceable></term>
<listitem><para>Specify the client SSL certificate.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>d</option></term><term><option>-disable</option></term>
<listitem><para>Disable the publisher. A disabled publisher is not used when
populating the package list or in certain package operations (install, uninstall,
and update). However, the properties for a disabled publisher can still be
set and viewed. If only one publisher exists, it cannot be disabled.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>e</option></term><term><option>-enable</option></term>
<listitem><para>Enable the publisher.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>g</option> <replaceable>origin_to_add</replaceable></term>
<term><option>-add-origin</option> <replaceable>origin_to_add</replaceable></term>
<listitem><para>Add the specified URI or path as an origin for the given publisher.
This should be the location of a package repository or archive. If combined with
<option>-enable</option> or <option>-disable</option>, the origins will be
enabled or disabled as specified. In this case, <literal>*</literal> can be used
to enable or disable all origins.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>k</option> <replaceable>ssl_key</replaceable></term>
<listitem><para>Specify the client SSL key.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>m</option> <replaceable>mirror_to_add</replaceable></term>
<term><option>-add-mirror</option> <replaceable>mirror_to_add</replaceable></term>
<listitem><para>Add the URI as a mirror for the given publisher.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-add-property-value</option> <replaceable>name_of_property
</replaceable>=<replaceable>value_to_add</replaceable></term>
<listitem><para>Add a value to an existing publisher property or add a new
publisher property.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-approve-ca-cert</option> <replaceable>path_to_CA</replaceable></term>
<listitem><para>For verifying signed packages, add the specified certificate
as a CA certificate that is trusted. The hashes of the PEM representation
of the user-approved CA certificates are listed in the detailed output of
the <command>pkg publisher</command> command.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-no-refresh</option></term>
<listitem><para>Do not attempt to contact the repositories for the image’s
publishers to retrieve the newest list of available packages and other metadata.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-non-sticky</option></term>
<listitem><para>Higher ranked publishers than this one can provide updates to
packages originally installed from this publisher. All non-sticky publishers
adjacent to this one or siblings, regardless of rank, can provide updates and
satisfy dependencies of packages offered by this publisher.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-proxy</option> <replaceable>proxy_to_use</replaceable></term>
<listitem><para>Use the specified proxy URI to retrieve content for the
specified origin (<option>g</option>) or mirror (<option>m</option>). The proxy
value is stored as part of the publisher configuration, which means the system
repository used by child images is automatically updated. This option cannot be
used to set an authenticated proxy. The <replaceable>proxy_to_use</replaceable>
value cannot have the form <literal>protocol://user:password@host</literal>.</para>
<para>At run time, <literal>http_proxy</literal> or related environment
variables override this proxy setting. See the “Environment”
section of the <literal>curl</literal>(1) man page for the list of accepted
environment variable names. If you use an environment variable to set the
proxy URI, you must also set the appropriate proxy property of the
same value. See “Specifying a Proxy” in
<citetitle>Adding and Updating Software in Oracle Solaris 11.2</citetitle>.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-remove-property-value</option> <replaceable>name_of_property
</replaceable>=<replaceable>value_to_remove</replaceable></term>
<listitem><para>Remove a value from an existing publisher property.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-reset-uuid</option></term>
<listitem><para>Choose a new unique identifier that identifies this image
to its publisher.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-revoke-ca-cert</option> <replaceable>hash_of_CA_to_remove
</replaceable></term>
<listitem><para>For verifying signed packages, treat the certificate with the given hash of its PEM representation as revoked. The hashes of the user-revoked CA certificates are listed in the detailed output of the <command>pkg publisher</command> command.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-search-after</option> <replaceable>publisher</replaceable></term>
<listitem><para>Alter the publisher search order so that the publisher being
added or modified is searched after the publisher specified in this option.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-search-before</option> <replaceable>publisher</replaceable></term>
<listitem><para>Alter the publisher search order so that the publisher being
added or modified is searched before the publisher specified in this option.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-set-property</option> <replaceable>name_of_property</replaceable>=<replaceable>
value</replaceable></term>
<listitem><para>Update an existing publisher property or add a new publisher
property.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-sticky</option></term>
<listitem><para>Updates to packages that were installed from this publisher
must also come from this publisher. This is the default behavior.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-unset-ca-cert</option> <replaceable>hash_of_CA_to_remove
</replaceable></term>
<listitem><para>For verifying signed packages, remove the certificate with
the given hash from the list of approved certificates and the list of revoked
certificates.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-unset-property</option> <replaceable>name_of_property_to_delete
</replaceable></term>
<listitem><para>Remove an existing publisher property.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg set-publisher</command> <option>p</option> <replaceable>repo_uri</replaceable> [-Ped] [<option>c</option> <replaceable>ssl_cert</replaceable>] [<option>k</option> <replaceable>ssl_key</replaceable>] [<option>-non-sticky</option>] [<option>-sticky</option>] [<option>-search-after</option> <replaceable>publisher</replaceable>] [<option>-search-before</option> <replaceable>publisher</replaceable>] [<option>-search-first</option>] [<option>-approve-ca-cert</option> <replaceable>path_to_CA</replaceable>] [<option>-revoke-ca-cert</option> <replaceable>hash_of_CA_to_remove</replaceable>] [<option>-unset-ca-cert</option> <replaceable>hash_of_CA_to_remove</replaceable>] [<option>-set-property</option> <replaceable>name_of_property</replaceable>=<replaceable>value</replaceable>] [<option>-add-property-value</option> <replaceable>name_of_property</replaceable>=<replaceable>value_to_add</replaceable>] [<option>-remove-property-value</option> <replaceable>name_of_property</replaceable>=<replaceable>value_to_remove</replaceable>] [<option>-unset-property</option> <replaceable>name_of_property_to_delete</replaceable>] [<option>-proxy</option> <replaceable>proxy_to_use</replaceable>] [<replaceable>publisher</replaceable>]</term>
<listitem><para>Retrieve publisher configuration information from the <replaceable>repo_uri</replaceable> repository URI.</para>
<para>If a publisher operand is specified to this <command>set-publisher</command> subcommand,
then only that publisher is added or updated. If no publisher is specified,
all publishers in <replaceable>repo_uri</replaceable> are added or updated
as appropriate.</para>
<para>For descriptions of options, see the <command>set-publisher</command> command
above. When used with <option>p</option>, the <option>P</option>, <option>-search-first
</option>, <option>-search-before</option>, and <option>-search-after</option> options
only apply to added publishers, not to updated publishers.</para>
<para>The <option>p</option> option cannot be combined with the <option>g</option>, <option>
-add-origin</option>, <option>G</option>, <option>-remove-origin</option>, <option>
m</option>, <option>-add-mirror</option>, <option>M</option>, <option>-remove-mirror
</option>, <option>-disable</option>, <option>-enable</option>, <option>-no-refresh
</option>, or <option>-reset-uuid</option> options.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg unset-publisher</command> <replaceable>publisher
</replaceable> ...</term>
<listitem><para>Remove the configuration associated with the specified publisher
or publishers.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg history</command> [<option>HNl</option>] [<option>n</option> <replaceable>number</replaceable>] [<option>o</option> <replaceable>column</replaceable>[,<replaceable>column</replaceable>]...]... [<option>t</option> <replaceable>time</replaceable> | <replaceable>time</replaceable>-<replaceable>time</replaceable>[,<replaceable>time</replaceable> | <replaceable>time</replaceable>-<replaceable>time</replaceable>]...]...</term>
<listitem><para>Display the command history of the applicable image. Display
the start time of the operation, the name of the operation (for example,
<literal>install</literal>), the client (for example, <literal>pkg</literal>),
and the outcome of the operation (Succeeded or Failed).</para>
<variablelist termlength="wholeline">
<varlistentry><term><option>H</option></term>
<listitem><para>Omit the headers from the listing.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>l</option></term>
<listitem><para>Display the long form of the command history of the image.
Additional information displayed includes the version of the client, the name
of the user who performed the operation, whether a new boot environment was
created, the time the operation completed and total time taken, the complete
command that was issued, and any errors that were encountered while executing
the command. For operations such as <command>update</command>, complete FMRIs
of changed packages are shown.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>N</option></term>
<listitem><para>Display the release note text.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>n</option> <replaceable>number</replaceable></term>
<listitem><para>Display only the specified number of most recent entries.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>o</option> <replaceable>column</replaceable></term>
<listitem><para>Display output using the specified column names. The <option>o</option> option
can be specified multiple times, or multiple column names can be specified
as the argument to one <option>o</option> option by separating the column
names with commas. Valid column names are:</para>
<variablelist termlength="wholeline">
<varlistentry><term><literal>be</literal></term>
<listitem><para>The name of the boot environment this operation was started
on.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>be_uuid</literal></term>
<listitem><para>The <literal>uuid</literal> of the boot environment this operation
was started on.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>client</literal></term>
<listitem><para>The name of the client.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>client_ver</literal></term>
<listitem><para>The version of the client.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>command</literal></term>
<listitem><para>The command line used for this operation.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>finish</literal></term>
<listitem><para>The time that this operation finished.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>id</literal></term>
<listitem><para>The user id that started this operation.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>new_be</literal></term>
<listitem><para>The new boot environment created by this operation.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>new_be_uuid</literal></term>
<listitem><para>The <literal>uuid</literal> of the new boot environment created
by this operation.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>operation</literal></term>
<listitem><para>The name of the operation.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>outcome</literal></term>
<listitem><para>A summary of the outcome of this operation.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>reason</literal></term>
<listitem><para>Additional information on the outcome of this operation.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>release_note</literal></term>
<listitem><para>Indicates whether this operation generated release notes.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>snapshot</literal></term>
<listitem><para>The snapshot taken during this operation. This is only recorded if the snapshot was not automatically removed after successful operation completion.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>start</literal></term>
<listitem><para>The time that this operation started.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>time</literal></term>
<listitem><para>The total time taken to perform this operation. For operations
that take less than one second, 0:00:00 is shown.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>user</literal></term>
<listitem><para>The username that started this operation.</para>
</listitem>
</varlistentry>
</variablelist>
<para>If the <literal>command</literal> or <literal>reason</literal> columns
are specified, they must be the last item in the <option>o</option> list,
in order to preserve output field separation. These two columns cannot be
shown in the same <command>history</command> command.</para>
<para>An asterisk (*) is shown after the values for <literal>be</literal> or <literal>
new_be</literal> if the boot environment is no longer present on the system.</para>
<para>The values for <literal>be</literal> and <literal>new_be</literal> are
obtained by looking up the current boot environment name, using the <literal>be_uuid
</literal> or <literal>new_be_uuid</literal> fields. If a boot environment
was subsequently renamed, and later deleted, the values displayed for <literal>be
</literal> and <literal>new_be</literal> are the values recorded at the time
of the <command>pkg</command> operation.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>t</option> <replaceable>time</replaceable></term>
<term><option>t</option> <replaceable>time</replaceable>-<replaceable>time</replaceable></term>
<listitem><para>Display log records for a comma-separated list of timestamps,
formatted with <literal>%Y-%m-%dT%H:%M:%S</literal> (see the <literal>strftime</literal>(3C)
man page). To specify a range of times, use a hyphen (<literal>-</literal>)
between a start and finish timestamp. The keyword <literal>now</literal> can
be used as an alias for the current time. This option can be specified multiple
times. If the timestamps specified contain duplicate timestamps or overlapping
ranges, duplicate history events are not displayed. Only a single instance
of each history event is displayed.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg purge-history</command></term>
<listitem><para>Delete all existing history information.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg rebuild-index</command></term>
<listitem><para>Rebuild the index used by <command>pkg search</command>. This
is a recovery operation not intended for general use.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg update-format</command></term>
<listitem><para>Update the format of the image to the current version. Once
this operation has completed, the image can no longer be used with older versions
of the <literal>pkg</literal>(7) system.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg version</command></term>
<listitem><para>Display a unique string identifying the version of <command>pkg</command>.
This string is not guaranteed to be comparable in any fashion between versions.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg help</command> [<option>v</option>]</term>
<listitem><para>Display a full list of subcommands.</para>
<variablelist termlength="wholeline">
<varlistentry><term><option>v</option></term>
<listitem><para>Display a verbose usage message of subcommands.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg image-create</command> [<option>FPUfz</option>] [<option>-force</option>] [<option>-full</option> | <option>-partial</option> | <option>-user</option>] [<option>-zone</option>] [<option>c</option> <replaceable>ssl_cert</replaceable>] [<option>k</option> <replaceable> ssl_key</replaceable>] [<option>g</option> <replaceable>path_or_uri</replaceable> | <option>-origin</option> <replaceable>path_or_uri</replaceable>]... [<option>m</option> <replaceable>uri</replaceable> | <option>-mirror</option> <replaceable>uri</replaceable>]... [<option>-facet</option> <replaceable>facet_name</replaceable>=(<literal>True</literal>|<literal>False</literal>)]... [<option>-no-refresh</option>] [<option>-set-property</option> <replaceable>name_of_property</replaceable>=<replaceable>value</replaceable>] [<option>-variant</option> <replaceable>variant_name</replaceable>=<replaceable>value</replaceable>]... [(<option>p</option> | <option>-publisher</option>) [<replaceable>name</replaceable>=]<replaceable>repo_uri</replaceable>] <replaceable>dir</replaceable></term>
<listitem><para>At the location given by <replaceable>dir</replaceable>, create an image suitable for package operations. Images created by using the <command>image-create</command> subcommand are not bootable. Most users should use the <option>-be-name</option> or <option>-require-new-be</option> options with <command>pkg</command> commands, or use the <command>beadm</command> or <command>zoneadm</command> commands to create images. The <command>pkg image-create</command> command is used for tasks such as maintaining packages and operating system distributions.</para>
<para>The default image type is user, which can be specified by using the <option>U</option> or <option>-user</option> option. Alternatively, the image type can be set to a full image (<option>-F</option> or <option>-full</option>) or to a partial image (<option>P</option> or <option>-partial</option>) linked to the full image enclosing the given <replaceable>dir</replaceable> path.</para>
<para>Additional origins can be specified using <option>g</option> or <option>-origin</option>. Additional mirrors can be specified using <option>m</option> or <option>-mirror</option>.</para>
<para>A package repository URI must be provided using the <option>p</option> or <option>-publisher</option> option. If a publisher name is also provided, then only that publisher is added when the image is created. If a publisher name is
not provided, then all publishers known by the specified repository are added
to the image. An attempt to retrieve the catalog associated with this publisher
is made following the initial creation operations.</para>
<para>For publishers using client SSL authentication, a client key and client
certificate can be registered via the <option>c</option> and <option>k</option> options. This key and certificate are used for all publishers added during image creation.</para>
<para>If the image is to be run within non-global zone context, use the <option>z</option> (<option>-zone</option>) option to set an appropriate variant.</para>
<variablelist termlength="wholeline">
<varlistentry><term><option>f</option></term><term><option>-force</option></term>
<listitem><para>Force the creation of an image over an existing image. This
option should be used with care.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-facet</option> <replaceable>facet_name</replaceable>=(<literal>
True</literal>|<literal>False</literal>)</term>
<listitem><para>Set the specified facet to the indicated value. See “Facets
and Variants” in the <literal>pkg</literal>(7) man page for more information
about facets.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-no-refresh</option></term>
<listitem><para>Do not attempt to contact the repositories for the image’s
publishers to retrieve the newest list of available packages and other metadata.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-set-property</option> <replaceable>name_of_property</replaceable>=<replaceable>
value</replaceable></term>
<listitem><para>Set the specified image property to the indicated value. See “Image
Properties” below for descriptions of image properties.</para>
</listitem>
</varlistentry>
<varlistentry><term><option>-variant</option> <replaceable>variant_name</replaceable>=<replaceable>
value</replaceable></term>
<listitem><para>Set the specified variant to the indicated value. See “Facets
and Variants” in the <literal>pkg</literal>(7) man page for more information
about variants.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg <option>R</option> <replaceable>dir</replaceable> dehydrate</command> [<option>nvq</option>] [<option>p</option> <replaceable>publisher</replaceable>]...</term>
<listitem><para>Remove all non-editable packaged files and packaged hardlinks from the image specified by the <option>R</option> option to create a fully dehydrated image. Packaged files and packaged hardlinks are files and hardlinks that are delivered by the currently installed version of a package. A non-editable file cannot have any <literal>preserve</literal> or <literal>overlay</literal> attribute and cannot have a <literal>dehydrate</literal> attribute with a value of <literal>false</literal>.</para>
<para>The <command>pkg dehydrate</command> command only operates on an alternate root. Use the <option>R</option> option to specify the alternate root. If the alternate root belongs to a boot environment, dehydration will render it unbootable.</para>
<para>If the <command>pkg dehydrate</command> command succeeds, a property named <command>dehydrated</command> is set on the <replaceable>dir</replaceable> image specified by the <option>R</option> option. The value of the <command>dehydrated</command> property is a list of all publishers set in the <replaceable>dir</replaceable> image that have a configured package repository.</para>
<para>Package installation operations on packages from a dehydrated publisher are automatically dehydrated. If you install a package in a dehydrated image, the package content is installed and then dehydrated. Package installation operations can include operations such as <command>update</command> and <command>change-facet</command> as well as <command>install</command>.</para>
<variablelist termlength="wholeline">
<varlistentry>
<term><option>p</option> <replaceable>publisher</replaceable></term>
<listitem><para>Remove only non-editable files and hardlinks delivered by the specified publishers to create a partially dehydrated image. If all configured publishers of the image are specified, a fully dehydrated image is created as described above.</para>
<para>If one or more publishers is specified, and if any of the publishers is not configured in the image, then nothing is removed from the image.</para>
<para>If the <command>pkg dehydrate</command> command succeeds, a property named <command>dehydrated</command> is set on the <replaceable>dir</replaceable> image specified by the <option>R</option> option. The value of the <command>dehydrated</command> property is a list of all publishers specified by <option>p</option> options.</para>
</listitem>
</varlistentry>
</variablelist>
<para>For all other options, see the <command>install</command> command above.</para>
</listitem>
</varlistentry>
<varlistentry><term><command>pkg <option>R</option> <replaceable>dir</replaceable> rehydrate</command> [<option>nvq</option>] [<option>p</option> <replaceable>publisher</replaceable>]...</term>
<listitem><para>Reinstall all files and hardlinks removed by the <command>pkg dehydrate</command> command.</para>
<para>The <command>pkg rehydrate</command> command only operates on an alternate root. Use the <option>R</option> option to specify the alternate root.</para>
<para>If the <command>pkg rehydrate</command> command succeeds, the value of the <command>dehydrated</command> property of the image is empty.</para>
<variablelist termlength="wholeline">
<varlistentry>
<term><option>p</option> <replaceable>publisher</replaceable></term>
<listitem><para>Reinstall all files and hardlinks removed by the <command>pkg dehydrate</command> command for the specified publishers.</para>
<para>If one or more publishers is specified, and if any of the publishers is not configured in the image, then nothing is installed.</para>
<para>If the <command>pkg rehydrate</command> command succeeds, the specified publisher names are removed from the value of the <command>dehydrated</command> property set on the image. Publishers not specified in the <command>rehydrate</command> command remain listed in the <command>dehydrated</command> property, and content installed from those publishers will still be dehydrated.</para>
</listitem>
</varlistentry>
</variablelist>
<para>For all other options, see the <command>install</command> command above.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="other"><title>Image Properties</title>
<para>The following properties define characteristics of the image. These
properties store information about the purpose, content, and behavior of the
image. To view the current values of these properties in the image, use the
<command>pkg property</command> command. To modify the values of these
properties, use the <command>pkg set-property</command> and
<command>pkg unset-property</command> commands.</para>
<variablelist termlength="wholeline">
<varlistentry><term><literal>be-policy</literal></term>
<listitem><para>(string) Specify when a boot environment is created during
packaging operations. The following values are allowed:</para>
<variablelist termlength="wholeline">
<varlistentry><term><literal>default</literal></term>
<listitem><para>Apply the default boot environment creation policy, <literal>create-backup
</literal>.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>always-new</literal></term>
<listitem><para>Requires a reboot for all package operations by performing them
in a new boot environment set as active on the next boot. A backup boot
environment is not created unless explicitly requested.</para>
<para>This policy is the safest, but is more strict than most sites need since
no packages can be added without a reboot.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><literal>create-backup</literal></term>
<listitem><para>For package operations that require a reboot, a new boot environment
is created and set as active on the next boot. If packages are modified or
content that could affect the kernel is installed and the operation affects
the live boot environment, a backup boot environment is created but not set
as active. A backup boot environment can also be explicitly requested.</para>
<para>This policy is potentially risky only if newly installed software causes
system instability, which is possible but relatively rare.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>when-required</literal></term>
<listitem><para>For package operations that require a reboot, a new boot environment
is created and set as active on the next boot. A backup boot environment is
not created unless explicitly requested.</para>
<para>This policy carries the greatest risk since if a packaging change to
the live boot environment makes further changes impossible, there might be
no recent boot environment to which one can fallback.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>ca-path</literal></term>
<listitem><para>(string) A path name that points to a directory where CA certificates
are kept for SSL operations. The format of this directory is specific to the
underlying SSL implementation. To use an alternate location for trusted CA
certificates, change this value to point to a different directory. See the <literal>
CApath</literal> portions of <literal>SSL_CTX_load_verify_locations</literal>(3openssl)
for requirements for the CA directory.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>check-certificate-revocation</literal></term>
<listitem><para>(boolean) If this is set to <literal>True</literal>, the package
client attempts to contact any CRL distribution points in the certificates
used for signature verification to determine whether the certificate has been
revoked since being issued.</para>
<para>Default value: <literal>False</literal></para>
</listitem>
</varlistentry>
<varlistentry><term><literal>content-update-policy</literal></term>
<listitem><para>(string) Specify when the package system will update non-editable files during packaging operations. The following values are allowed:</para>
<variablelist termlength="wholeline">
<varlistentry><term><literal>default</literal></term>
<listitem><para>Always apply the default content update policy.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>always</literal></term>
<listitem><para>Always download and update non-editable files that have changed.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>when-required</literal></term>
<listitem><para>Download and update non-editable files that have changed only if the package system has determined that an update is required.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Default value: <literal>always</literal></para>
</listitem>
</varlistentry>
<varlistentry><term><literal>flush-content-cache-on-success</literal></term>
<listitem><para>(boolean) If this is set to <literal>True</literal>, the package
client removes the files in its content-cache when image-modifying operations
complete successfully. For operations that create a boot environment, the
content will be removed from both the source and destination boot
environment.</para>
<para>This property can be used to keep the content-cache small on systems
with limited disk space. This property can cause operations to take longer
to complete.</para>
<para>Default value: <literal>True</literal></para>
</listitem>
</varlistentry>
<varlistentry><term><literal>mirror-discovery</literal></term>
<listitem><para>(boolean) This property tells the client to discover link-local content mirrors using mDNS and
DNS-SD. If this property is set to <literal>True</literal>, the client attempts to download package
content from mirrors it dynamically discovers. To run a mirror that advertises its content via mDNS,
<para>Default value: <literal>False</literal></para>
</listitem>
</varlistentry>
<varlistentry><term><literal>send-uuid</literal></term>
<listitem><para>(boolean) Send the image’s Universally Unique Identifier (UUID)
when performing network operations. Although users can disable this option,
some network repositories might refuse to talk to clients that do not supply
a UUID.</para>
<para>Default value: <literal>True</literal></para>
</listitem>
</varlistentry>
<varlistentry><term><literal>signature-policy</literal></term>
<listitem><para>(string) Determine what checks will be performed on manifests
when installing, updating, modifying, or verifying packages in the image.
The final policy applied to a package depends on the combination of image
policy and publisher policy. The combination will be at least as strict as
the stricter of the two policies taken individually. By default, the package
client does not check whether certificates have been revoked. To enable those
checks, which might require the client to contact external Internet sites, set
the <literal>check-certificate-revocation</literal> image property to
<literal>True</literal>. The following values are allowed:</para>
<variablelist termlength="wholeline">
<varlistentry><term><literal>ignore</literal></term>
<listitem><para>Ignore signatures for all manifests.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>verify</literal></term>
<listitem><para>Verify that all manifests with signatures are validly signed,
but do not require all installed packages to be signed. This is the default
value.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>require-signatures</literal></term>
<listitem><para>Require that all newly installed packages have at least one
valid signature. The <command>pkg fix</command> and <command>pkg verify</command> commands
also warn if an installed package does not have a valid signature.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>require-names</literal></term>
<listitem><para>Follow the same requirements as <literal>require-signatures</literal> but
also require that the strings listed in the <literal>signature-required-names</literal> property
appear as a common name of the certificates used to verify the chains of trust
of the signatures.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry><term><literal>signature-required-names</literal></term>
<listitem><para>(list of strings) A list of names that must be seen as common
names of certificates while validating the signatures of a package.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>trust-anchor-directory</literal></term>
<listitem><para>(string) The path name of the directory that contains the
trust anchors for the image. This path is relative to the image. The default
value is <literal>ignore</literal>.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>use-system-repo</literal></term>
<listitem><para>(boolean) This property indicates whether the image should
use the system repository as a source for image and publisher configuration
and as a proxy for communicating with the publishers provided. The default
man page for information about system repositories.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="other"><title>Publisher Properties</title>
<para>The following properties define signature policy for a particular publisher.
The image properties of the same name define signature policy for the image.
To view the current values of these properties for a particular publisher,
use the <command>pkg publisher</command> <replaceable>publisher_name</replaceable> command.
To modify the values of these publisher signature policy properties, use the <option>
-set-property</option> and <option>-unset-property</option> options of the <command>
pkg set-publisher</command> command.</para>
<variablelist termlength="wholeline">
<varlistentry><term><literal>signature-policy</literal></term>
<listitem><para>(string) This property functions identically to the image
property of the same name except that it only applies to packages from the
particular publisher.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>signature-required-names</literal></term>
<listitem><para>(list of strings) This property functions identically to the
image property of the same name except that it only applies to packages from
the particular publisher.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="examples"><title></title>
<example><title>Create an Image With Publisher Configured</title>
<screen>$ <userinput>pkg image-create -F -p example.com=http://pkg.example.com:10000 \</userinput>
</example>
<example id="GLGIN"><title>Create an Image, Specifying Additional Origins and Mirror</title>
that also has an additional mirror, two additional origins, and is stored
<screen>$ <userinput>pkg image-create -F -p example.com=http://pkg.example.com:10000 \</userinput>
</example>
<example><title>Create an Image With No Publisher Configured</title>
</literal>.</para>
</example>
<example><title>Install a Package</title>
<para>Install the latest version of the <literal>widget</literal> package
in the current image.</para>
</example>
<example><title>List Specified Contents of a Package</title>
Display the action name, the mode of the file (if defined), the size (if defined),
the path, and the target (if a link). Limit the action to types <literal>dir</literal>, <literal>
file</literal>, <literal>link</literal>, and <literal>hardlink</literal>,
for all actions, displays a line for all actions, which is not desired here.</para>
<screen>$ <userinput>pkg contents -t dir,file,link,hardlink \</userinput>
ACTION.NAME MODE PKG.SIZE PATH TARGET
dir 0755 etc
dir 0755 kernel
...</screen>
</example>
<example><title>List Specified Contents of Two Packages</title>
</literal>, limiting the display to just the package name and path attributes
of actions whose <literal>path</literal> attribute ends in <filename>.desktop</filename> or <filename>
.png</filename>.</para>
PKG.NAME PATH
...</screen>
</example>
<example><title>Search for a Package</title>
<para>Search the package database for the token <literal>bge</literal>.</para>
<screen>$ <userinput>pkg search bge</userinput>
INDEX ACTION VALUE PACKAGE
driver_name driver bge pkg:/driver/network/ethernet/bge@0.5.11-0.175.0.0.0.2.1
basename file platform/sun4v/kernel/drv/sparcv9/bge pkg:/system/kernel/platform@0.5.11-0.175.0.0.0.2.1
pkg.fmri set solaris/driver/network/ethernet/bge pkg:/driver/network/ethernet/bge@0.5.11-0.175.0.0.0.2.1
</screen>
arch</replaceable>/bge</filename> and as a driver name.</para>
</example>
<example id="GMEDQ"><title>Search for a File</title>
<para>Search for the package that delivers a file by specifying the full path
name of the file, including the leading slash character.</para>
PATH PKG.NAME
<para>Search for a file and the package that delivers that file by specifying <literal>
file</literal> for the <replaceable>action_name</replaceable>, <literal>path</literal> or <literal>
basename</literal> for the <replaceable>index</replaceable>, and the full
or partial file name for the <replaceable>token</replaceable>.</para>
PATH PKG.NAME
</example>
<example id="GMECW"><title>Search for Files and Directories</title>
<para>Search for files and directories and the packages that deliver them
by specifying <literal>path</literal> or <literal>basename</literal> for the <replaceable>
index</replaceable> and the full or partial file name for the <replaceable>token</replaceable>.
Depending on your shell, you might need to escape wildcards.</para>
PATH PKG.NAME
PATH PKG.NAME
</example>
<example id="GMEGA"><title>Show Which Packages Provide Which SMF Services</title>
<para>Show which packages provide a particular SMF service by specifying the
a structured search and the name of the service you want to find for the <replaceable>
the name of an attribute of a <literal>set</literal> action. Remember to escape
the : in the name of the service.</para>
<para>For example, show which HTTP servers are available by specifying the value <literal>svc:/network/http</literal> for the <replaceable>token</replaceable>.</para>
INDEX ACTION VALUE PACKAGE
org.opensolaris.smf.fmri set svc:/network/http:apache22 pkg:/web/server/apache-22@2.2.22-0.175.0.0.0.2.1
org.opensolaris.smf.fmri set svc:/network/http:lighttpd14 pkg:/web/server/lighttpd-14@1.4.23-0.175.0.0.0.2.1
org.opensolaris.smf.fmri set svc:/network/http:privoxy pkg:/web/proxy/privoxy@3.0.17-0.175.0.0.0.2.1
org.opensolaris.smf.fmri set svc:/network/http:tomcat6 pkg:/web/java-servlet/tomcat@6.0.35-0.175.0.0.0.2.1
</screen>
</example>
<example><title>Search for Packages that Depend on the Specified Package</title>
INDEX ACTION VALUE PACKAGE
incorporate depend package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/consolidation/ips/ips-incorporation@0.5.11-0.175.0.0.0.2.1
require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/system/library/install@0.5.11-0.175.0.0.0.2.1
require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/system/library/boot-management@0.5.11-0.175.0.0.0.2.1
require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/install/distribution-constructor@0.5.11-0.175.0.0.0.2.1
require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/system/boot-environment-utilities@0.5.11-0.175.0.0.0.2.1
require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/package/pkg/system-repository@0.5.11-0.175.0.0.0.2.1
</screen>
</example>
<example><title>Search for Dependencies</title>
<para>Search for all <literal>incorporate</literal> dependencies in installed
packages.</para>
<screen>$ <userinput>pkg search -l depend:incorporate:</userinput>
INDEX ACTION VALUE PACKAGE
incorporate depend pkg:/BRCMbnx@0.5.11-0.175.0.0.0.2.1 pkg:/consolidation/osnet/osnet-incorporation@0.5.11-0.175.0.0.0.2.1
incorporate depend pkg:/BRCMbnxe@0.5.11-0.175.0.0.0.2.1 pkg:/consolidation/osnet/osnet-incorporation@0.5.11-0.175.0.0.0.2.1
...</screen>
</example>
<example><title>Add a Publisher</title>
<screen>$ <userinput>pkg set-publisher -g http://www.example.com/repo example.com</userinput></screen>
</example>
<example><title>Add a Publisher With Key and Certificate</title>
</example>
<example><title>Add and Automatically Configure a Publisher</title>
automatic configuration.</para>
</example>
<example><title>Add and Manually Configure a Publisher</title>
<para>Add a new publisher <literal>example.com</literal> with a repository located at <literal>/export/repo/example.com</literal> using manual configuration.</para>
</example>
<example id="GMFJM"><title>Add a Publisher and Configure a Proxy</title>
</example>
<example><title>Verify All Signed Packages</title>
<para>Configure an image to verify all signed packages.</para>
<screen>$ <userinput>pkg set-property signature-policy verify</userinput></screen>
</example>
<example><title>Require All Packages To Be Signed</title>
<para>Configure an image to require all packages to be signed, and require
one of the certificates in the chain of trust.</para>
<screen>$ <userinput>pkg set-property signature-policy require-names example.com</userinput></screen>
</example>
<example><title>Require All Packages From a Specified Publisher To Be Signed</title>
</literal> must be signed.</para>
<screen>$ <userinput>pkg set-publisher --set-property signature-policy=require-signatures \</userinput>
</example>
<example><title>Require a Specified String in the Chain of Trust</title>
<para>Add the string <literal>foo</literal> to the image’s list of common
names that must be seen in a signature’s chain of trust to be considered valid.</para>
<screen>$ <userinput>pkg add-property-value signature-require-names foo</userinput></screen>
</example>
<example><title>Remove a String From the Chain of Trust for a Specified Publisher
</title>
<para>Remove the string <literal>foo</literal> from the list of common names that must be seen to validate a signature for the publisher <literal>example.com</literal>.</para>
<screen>$ <userinput>pkg set-publisher --remove-property-value signature-require-names=foo \</userinput>
</example>
<example><title>Add a Trusted CA Certificate</title>
</example>
<example><title>Revoke a Certificate</title>
<para>Revoke the certificate with the hash <literal>a12345</literal> for publisher <literal>
example.com</literal>, preventing the certificate from validating any signatures
</example>
<example><title>Forget About a Certificate</title>
<para>Make <command>pkg</command> forget that the certificate <literal>a12345</literal> was
ever added or revoked by the user.</para>
</example>
<example><title>Downgrade a Package</title>
<para>Downgrade the installed package <literal>foo@1.1</literal> to an older
version.</para>
<screen>$ <userinput>pkg update foo@1.0</userinput></screen>
</example>
<example><title>Switch Conflicting Package Installation</title>
<para>In the case of two conflicting packages, change which package is installed.
Suppose package A depends on either package B or package C, and B and C are
mutually exclusive. If A and B are installed, use the following command to
switch to using C instead of B without uninstalling A:</para>
<screen>$ <userinput>pkg install --reject B C</userinput></screen>
</example>
<example><title>List Packages in a Package Archive</title>
<para>List all versions of all packages in a package archive.</para>
</example>
<example><title>List Packages in a Package Repository</title>
<para>List all versions of all packages in a repository.</para>
</example>
<example><title>Display Information About a Package in a Package Archive</title>
<para>Display the package information for the latest version of a package
in a package archive. The package might or might not be currently installed.</para>
</example>
<example><title>Display Contents of a Package in a Package Archive</title>
<para>Display the contents of a package in a package archive. The package
is not currently installed.</para>
</example>
<example><title>Remove All Publisher Origins and Mirrors</title>
<para>Remove all of the origins and mirrors for a publisher and add a new
origin.</para>
</example>
<example><title>Dehydrating and Rehydrating an Image</title>
<para>In these examples, <literal>/tmp/test_image</literal> is the image that you want to dehydrate and rehydrate.</para>
<para>Because no publisher is specified, the following command fully dehydrates the <literal>/tmp/test_image</literal> image by operating on all publishers that are enabled in the <literal>/tmp/test_image</literal> image.</para>
<para>Because no publisher is specified, the following command operates on all publishers configured in the <literal>/tmp/test_image</literal> image to fully restore the <literal>/tmp/test_image</literal> image.</para>
</example>
<example><title>Dehydrating and Rehydrating an Image Specifying Publishers</title>
<para>In these examples, <literal>/tmp/test_image</literal> is the image that you want to dehydrate and rehydrate, and the <literal>test1</literal> and <literal>test2</literal> publishers are enabled in the <literal>/tmp/test_image</literal> image and their origins provide the necessary content.</para>
<para>The following command operates only on files and hardlinks delivered by the <literal>test1</literal> publisher.</para>
<para>The following command rehydrates only files and hardlinks delivered by the <literal>test1</literal> publisher.</para>
</example>
<example><title>Verify an Individual Path in an Image</title>
<para>Verify an individual file at path <literal>/tmp/test_image/usr/bin/ls</literal> and display verbose result.</para>
</example>
</refsect1>
<refsect1 role="environment-variables"><title></title>
<variablelist termlength="wholeline">
<varlistentry><term><envar>PKG_IMAGE</envar></term>
<listitem><para>The directory containing the image to use for package operations.
Ignored if <option>R</option> is specified.</para>
</listitem>
</varlistentry>
<varlistentry><term><envar>PKG_CLIENT_CONNECT_TIMEOUT</envar></term>
<listitem><para>Seconds to wait trying to connect during transport operations
(for each attempt) before the client aborts the operation. A value of 0 means
wait indefinitely.</para>
<para>Default value: 60</para>
</listitem>
</varlistentry>
<varlistentry><term><envar>PKG_CLIENT_LOWSPEED_TIMEOUT</envar></term>
<listitem><para>Seconds below the <literal>lowspeed</literal> limit (1024
A value of 0 means do not abort the operation.</para>
<para>Default value: 30</para>
</listitem>
</varlistentry>
<varlistentry><term><envar>PKG_CLIENT_MAX_CONSECUTIVE_ERROR</envar></term>
<listitem><para>Maximum number of transient transport errors before the client
aborts the operation. A value of 0 means do not abort the operation.</para>
<para>Default value: 4</para>
</listitem>
</varlistentry>
<varlistentry><term><envar>PKG_CLIENT_MAX_REDIRECT</envar></term>
<listitem><para>Maximum number of HTTP or HTTPS redirects allowed during transport
operations before a connection is aborted. A value of 0 means do not abort
the operation.</para>
<para>Default value: 5</para>
</listitem>
</varlistentry>
<varlistentry><term><envar>PKG_CONCURRENCY</envar></term>
<listitem><para>The number of child images to update in parallel. Ignored
if the <option>C</option> option is specified.</para>
<para>When recursing into child images (usually installed <literal>solaris</literal> branded non-global zones), update at most <envar>$PKG_CONCURRENCY</envar> child images in parallel. If <envar>$PKG_CONCURRENCY</envar> is 0 or a negative number, all child images are updated in parallel.</para>
<para>Default value: 1</para>
</listitem>
</varlistentry>
<varlistentry><term><envar>PKG_CLIENT_MAX_TIMEOUT</envar></term>
<listitem><para>Maximum number of transport attempts per host before the client
aborts the operation. A value of 0 means do not abort the operation.</para>
<para>Default value: 4</para>
</listitem>
</varlistentry>
<varlistentry><term><envar>http_proxy</envar>, <envar>https_proxy</envar></term>
<listitem><para>HTTP or HTTPS proxy server.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="exit-status"><title></title>
<para>The following exit values are returned:</para>
<variablelist>
<varlistentry><term><returnvalue>0</returnvalue></term>
<listitem><para>Command succeeded.</para>
</listitem>
</varlistentry>
<varlistentry><term><returnvalue>1</returnvalue></term>
<listitem><para>An error occurred.</para>
</listitem>
</varlistentry>
<varlistentry><term><returnvalue>2</returnvalue></term>
<listitem><para>Invalid command line options were specified.</para>
</listitem>
</varlistentry>
<varlistentry><term><returnvalue>3</returnvalue></term>
<listitem><para>Multiple operations were requested, but only some of them
succeeded.</para>
</listitem>
</varlistentry>
<varlistentry><term><returnvalue>4</returnvalue></term>
<listitem><para>No changes were made - nothing to do.</para>
</listitem>
</varlistentry>
<varlistentry><term><returnvalue>5</returnvalue></term>
<listitem><para>The requested operation cannot be performed on a live image.</para>
</listitem>
</varlistentry>
<varlistentry><term><returnvalue>6</returnvalue></term>
<listitem><para>The requested operation cannot be completed because the licenses
for the packages being installed or updated have not been accepted.</para>
</listitem>
</varlistentry>
<varlistentry><term><returnvalue>7</returnvalue></term>
<listitem><para>The image is currently in use by another process and cannot
be modified.</para>
</listitem>
</varlistentry>
<varlistentry><term><returnvalue>8</returnvalue></term>
<listitem><para>One or more SMF actuators timed out.</para>
</listitem>
</varlistentry>
<varlistentry><term><returnvalue>99</returnvalue></term>
<listitem><para>An unanticipated exception occurred.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="files"><title></title>
<para>A <literal>pkg</literal>(7) image can be located arbitrarily within
a larger file system. In the following file descriptions, the token <envar>$IMAGE_ROOT
</envar> is used to distinguish relative paths. For a typical system installation, <envar>
$IMAGE_ROOT</envar> is equivalent to <literal>/</literal></para>
<variablelist termlength="wholeline">
<listitem><para>Metadata directory for a full or partial image.</para>
</listitem>
</varlistentry>
<listitem><para>Metadata directory for a user image.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Within a particular image’s metadata, certain files and directories
can contain information useful during repair and recovery. The token <envar>$IMAGE_META
</envar> refers to the top-level directory containing the metadata. <envar>$IMAGE_META
</envar> is typically one of the two paths given above.</para>
<variablelist termlength="wholeline">
<listitem><para>Location of conflicting directories and files moved during
a package operation. Location of unpackaged contents of a removed directory.</para>
</listitem>
</varlistentry>
<listitem><para>Contains a directory for each publisher. Each directory stores
publisher-specific metadata.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Other paths within the <envar>$IMAGE_META</envar> directory hierarchy
are private and are subject to change.</para>
</refsect1>
<refsect1 role="attributes"><title></title>
<para>See <literal>attributes</literal>(7) for descriptions of the following
attributes:</para>
<informaltable frame="all" orient="port">
<tgroup cols="2" colsep="1" rowsep="1"><colspec colname="col1" colwidth="198*"
align="left"/><colspec colname="col2" colwidth="198*" align="left"/><thead>
<row>
<entry align="center">
<para>ATTRIBUTE TYPE</para>
</entry>
<entry align="center">
<para>ATTRIBUTE VALUE</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="left">
<para>Availability</para>
</entry>
<entry align="left">
</entry>
</row>
<row>
<entry align="left">
<para>Interface Stability</para>
</entry>
<entry align="left">
<para>Uncommitted</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable></refsect1>
<refsect1 role="see-also"><title></title>
<para><olink targetdoc="refman" targetptr="pkgsend-1"><citerefentry><refentrytitle>pkgsend</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink>, <olink targetdoc="refman" targetptr="beadm-8"><citerefentry><refentrytitle>beadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></olink>, <olink targetdoc="refman" targetptr="pkg.depotd-8"><citerefentry><refentrytitle>pkg.depotd</refentrytitle><manvolnum>8</manvolnum></citerefentry></olink>, <olink targetdoc="refman" targetptr="pkg.sysrepo-8"><citerefentry><refentrytitle>pkg.sysrepo</refentrytitle><manvolnum>8</manvolnum></citerefentry></olink>, <literal>glob</literal>(3C), <olink targetdoc="refman" targetptr="pkg-7"><citerefentry><refentrytitle>pkg</refentrytitle><manvolnum>7</manvolnum></citerefentry></olink></para>
<para><olink targetdoc="AUOSS"><citetitle remap="book">Adding and Updating Software in Oracle Solaris 11.2</citetitle></olink></para>
</refsect1>
</refentry>