<?Pub UDT _bookmark _target?><?Pub UDT __target_1 _target?><?Pub UDT registeredtm trademark?><chapter id="swmgrpatchtasks-1"><?Pub Tag atict:info tracking="off" ref="0"?><?Pub Tag
atict:user user="sk23612" fullname="Juanita Heieck"?><?Pub Tag atict:user
user="jonj" fullname="Juanita Heieck"?><?Pub Tag atict:user user="kathys"
fullname="Kathy Slattery"?><?Pub Tag atict:user user="cathleen" fullname=""?><?Pub Tag
atict:user user="eb151805" fullname="Juanita Heieck"?><?Pub Tag atict:user
user="jh118764" fullname="Juanita Heieck"?><?Pub Tag atict:user user="lh136763"
fullname="Laura Hartman"?><title>Managing Solaris Patches by Using the <command>patchadd</command> Command (Tasks)</title><highlights><para>Patch management involves <olink type="custom-text" targetptr="glossary_apply" remap="internal"><emphasis>applying</emphasis></olink> Solaris patches
and software updates to a system. Patch management might also involve removing
unwanted or faulty patches. Removing patches is also called <olink type="custom-text" targetptr="glossary_backout" remap="internal"><emphasis>backing out</emphasis></olink> patches.</para><para>This chapter provides step-by-step instructions on how to manage Solaris
patches by using the <command>patchadd</command> command. For additional information,
see the <olink targetdoc="refman" targetptr="patchadd-1m" remap="external"><citerefentry><refentrytitle>patchadd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para><itemizedlist><para>The following overview information is in this chapter:</para><listitem><para><olink targetptr="swmgrpatchconcepts-32371" remap="internal">Types of Patches</olink></para>
</listitem><listitem><para><olink targetptr="swmgrpatchconcepts-13707" remap="internal">Accessing Solaris
Patches</olink></para>
</listitem><listitem><para><olink targetptr="swmgrpatchconcepts-30492" remap="internal">Managing Patches
in the Solaris Operating System</olink></para>
</listitem><listitem><para><olink targetptr="glossary" remap="internal">Solaris Patch Management Terms
and Definitions</olink></para>
</listitem><listitem><para><olink targetptr="swmgrpatchtasks-14" remap="internal">Managing Solaris Patches
by Using the patchadd Command (Task Map)</olink></para>
</listitem>
</itemizedlist><para>For information about applying patches to diskless client systems, see <olink targetptr="clientsetup-13" remap="internal">Patching Diskless Client OS Services</olink>.<indexterm><primary>applying patches</primary><secondary>to diskless clients</secondary></indexterm><indexterm><primary>diskless clients</primary><secondary>applying patches to</secondary></indexterm></para><para>For information about recommended strategies and practices for using
Solaris patches, see <olink targetdoc="solpatchmgntwp" remap="external"><citetitle remap="book">Solaris Patch Management:  Recommended Strategies</citetitle></olink><indexterm><primary>strategies</primary><secondary>for using Solaris patches</secondary></indexterm>.</para>
</highlights><sect1 id="swmgrpatchconcepts-32371"><title>Types of Patches</title><para>A <emphasis>patch</emphasis> is an accumulation of fixes for a known
or potential problem within the Solaris OS or other supported software. A
patch can also provide a new feature or an enhancement to a particular software
release. A patch consists of files and directories that replace or update
existing files and directories. Most Solaris patches are delivered as a set
of sparse packages. For details about packages, see <olink targetptr="swmgrpkgsconcepts-52619" remap="internal">Chapter&nbsp;18, Managing Software (Overview)</olink>.<indexterm><primary>patches</primary><secondary>definition of</secondary></indexterm></para><para>A software <emphasis>update</emphasis> is a change that you apply to
software that corrects an existing problem or that introduces a feature. To
update is also the process of applying software updates to a system.</para><para>You can manage patches on your Solaris system by using the <command>patchadd</command> command.</para><sect2 id="swmgrpatchconcepts-2"><title>Signed and Unsigned Patches</title><para>A <olink type="custom-text" targetptr="glossary_signed_patch" remap="internal"><emphasis>signed
patch</emphasis></olink> is one that has a <olink type="custom-text" targetptr="glossary_digital_signature" remap="internal"><emphasis>digital signature</emphasis></olink> applied
to it. A patch that has its digital signature verified has not been modified
since the signature was applied. The digital signature of a signed patch is
verified after the patch is <olink type="custom-text" targetptr="glossary_download" remap="internal"><emphasis>downloaded</emphasis></olink> to your
system.<indexterm><primary>signed patches</primary><seealso>patches</seealso></indexterm><indexterm><primary>digital signature</primary><secondary>of signed patches</secondary></indexterm></para><para>Patches for the Solaris OS, starting with the Solaris 2.6 release, are
available as signed patches and as <olink type="custom-text" targetptr="glossary_unsigned_patch" remap="internal"><emphasis>unsigned patches</emphasis></olink>.
Unsigned patches do not have a digital signature.<indexterm><primary>unsigned patches</primary></indexterm><indexterm><primary>patches</primary><secondary>unsigned</secondary></indexterm><indexterm><primary>signed patches</primary></indexterm><indexterm><primary>patches</primary><secondary>signed</secondary></indexterm></para><para>Signed patches are stored in Java archive format (JAR) files and are
available from the <trademark class="service">SunSolve Online</trademark> web
site. Unsigned patches are stored in directory format and are also available
from the SunSolve Online web site as <filename>.zip</filename> files.</para><para>For information about applying patches to your system by using the <command>patchadd</command> command, see <olink targetptr="swmgrpatchtasks-14" remap="internal">Managing
Solaris Patches by Using the patchadd Command (Task Map)</olink>.</para><para>For additional overview information about signed patches, see <olink targetptr="swmgrpkgsconcepts-27" remap="internal">Signed Packages, Patches, and Software Updates</olink>.</para>
</sect2>
</sect1><sect1 id="swmgrpatchconcepts-13707"><title>Accessing Solaris Patches</title><indexterm><primary>patches</primary><secondary>accessing Solaris</secondary>
</indexterm><para>Sun customers can access patches from the SunSolve Patch Portal web
site. Although, some patches might only be accessible to customers with a
service plan, such as a <trademark class="service">SunSpectrum</trademark> or
a Solaris Service Plan customer. In <emphasis>all</emphasis> cases, you must
be registered with Sun and have a Sun online ID to enter the SunSolve Patch
Portal. These patches are updated nightly.</para><para>You can obtain Solaris patches from  the <ulink url="http://sunsolve.sun.com" type="url"></ulink> web site. To access patches
from the SunSolve Patch Portal web site, your system must be connected to
the Internet and be capable of running a web browser, such as the Firefox browser.</para><para>You can access individual patches or a set of patches from a patch cluster,
or refer to patch reports.</para><para>Each patch is associated with a README file that has information about
the patch.<indexterm><primary>patches</primary><secondary>patch README files</secondary></indexterm></para><sect2 id="swmgrpatchconcepts-20452"><title>Solaris Patch Numbering</title><para>Patches are identified by unique <olink type="custom-text" targetptr="glossary_patch_id" remap="internal"><emphasis>patch IDs</emphasis></olink>. A patch
ID is an alphanumeric string that is a patch base code and a number that represents
the patch revision number joined with a hyphen. For example, patch 118833-10
is the patch ID for the SunOS 5.10 kernel update patch, 10th revision.<indexterm><primary>patches</primary><secondary>numbering scheme</secondary></indexterm></para>
</sect2><sect2 id="patchmanager-1"><title>Managing Solaris Patches</title><para>This section describes how to manage Solaris patches with the Solaris
patch tools that are available.</para><itemizedlist><para>The patch tools do the following:</para><listitem><para>Determine the Solaris version number of the managing host
and the target host</para>
</listitem><listitem><para>Update the patch package's <filename>pkginfo</filename> file
with this information:</para><itemizedlist><listitem><para>Patches that have been <olink type="custom-text" targetptr="glossary_patch_obsolescence" remap="internal"><emphasis>obsoleted</emphasis></olink> by
the patch being applied</para>
</listitem><listitem><para>Other patches that are required by this patch</para>
</listitem><listitem><para>Patches that are <olink type="custom-text" targetptr="glossary_patch_incompatibility" remap="internal"><emphasis>incompatible</emphasis></olink> with
this patch</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist><para>While you apply patches, the <command>patchadd</command> command logs
information in the <filename>/var/sadm/patch/</filename><replaceable>patch-id</replaceable><filename>/log</filename> file.<indexterm><primary><filename>/var/sadm/patch</filename> directory</primary></indexterm></para><note><para>In this Solaris release, improvements have been made to the <command>patchadd</command> <option>M</option> command. When you use this command to
apply patches to your system, you are no longer required to specify patch
IDs in numeric order. If you use the <command>patchadd</command> <option>M</option> command
without specifying a patch ID, all patches in the directory are installed
on the system. For more information about these changes, see the <olink targetdoc="refman" targetptr="patchadd-1m" remap="external"><citerefentry><refentrytitle>patchadd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page.</para>
</note><itemizedlist><para>The <command>patchadd</command> command cannot apply a patch or software
update under the following conditions:</para><listitem><para>The package is not fully installed on the system.</para>
</listitem><listitem><para>The patch package's architecture differs from the system's
architecture.</para>
</listitem><listitem><para>The patch package's version does not match the installed package's
version.</para>
</listitem><listitem><para>A patch with the same base code and a higher revision number
has already been applied.</para>
</listitem><listitem><para>A patch that obsoletes this patch has already been applied.</para>
</listitem><listitem><para>The patch is incompatible with a patch that has already been
applied to the system. Each patch that has been applied keeps this information
in its <filename>pkginfo</filename> file.</para>
</listitem><listitem><para>The patch being applied depends on another patch that has
not yet been applied.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1><sect1 id="swmgrpatchconcepts-30492"><title>Managing Patches in the Solaris
Operating System</title><para>Use the following information to identify tasks for managing Solaris
patches. Each task points to additional tasks, such as managing signed or
unsigned patches.<indexterm><primary>patches</primary><secondary>managing</secondary></indexterm> <indexterm><primary>patch management tools</primary><secondary>road map</secondary></indexterm></para><informaltable frame="all"><tgroup cols="3" colsep="1"><?PubTbl tgroup dispwid="6.82in"?><colspec colname="colspec0" colwidth="26.34*"/><colspec colname="colspec1" colwidth="35.58*"/><colspec colname="colspec2" colwidth="37.07*"/><thead><row rowsep="1"><entry colname="colspec0"><para>Task</para>
</entry><entry colname="colspec1"><para>Description</para>
</entry><entry colname="colspec2"><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row rowsep="1"><entry><para>Determine whether to apply signed or unsigned patches.</para>
</entry><entry><para>Determine whether applying signed or unsigned patches is best for your
environment.</para>
</entry><entry><para><olink targetptr="swmgrpatchtasks-32" remap="internal">Determining Whether to Apply Signed
or Unsigned Patches to Your System</olink></para>
</entry>
</row><row rowsep="0"><entry><para>Apply a patch to your system.</para>
</entry><entry><para>Use the <command>patchadd</command> command on Solaris 2.6, Solaris
7, Solaris 8, Solaris 9, Solaris 10 or Solaris Express  systems to apply unsigned Solaris patches.</para>
</entry><entry><para><olink targetptr="swmgrpatchtasks-14" remap="internal">Managing Solaris Patches by Using
the patchadd Command (Task Map)</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><sect2 id="swmgrpatchtasks-32"><title>Determining Whether to Apply Signed
or Unsigned Patches to Your System</title><indexterm><primary>unsigned patches</primary><secondary>when to use</secondary>
</indexterm><indexterm><primary>signed patches</primary><secondary>when to use</secondary>
</indexterm><para>The key factor when determining whether to apply signed or unsigned
patches to your system is whether you trust the source of patches.</para><para>If you trust the source of patches, for example, a patch CD from a known
distributor or an <literal>HTTPS</literal> connection to a trusted web site,
you can use unsigned patches. However, if you do not trust the source, use
signed patches.</para><para>If you are unsure about whether to trust the source of patches, use
signed patches.</para>
</sect2>
</sect1><sect1 id="glossary"><title>Solaris Patch Management Terms and Definitions</title><indexterm><primary>definitions of patch-related terms</primary>
</indexterm><indexterm><primary>glossary of patch-related terms</primary>
</indexterm><indexterm><primary>patches</primary><secondary>terms used with</secondary>
</indexterm><para>The following terms are used throughout the patch management chapters.</para><glosslist><glossentry id="glossary_apply"><glossterm>apply</glossterm><glossdef><para>To install a patch on a system.</para>
</glossdef>
</glossentry><glossentry id="glossary_backout"><glossterm>back out</glossterm><glossdef><para>To remove a patch from a system.</para>
</glossdef>
</glossentry><glossentry id="glossary_backout_data"><glossterm>backout data</glossterm><glossdef><para>Data that is created when a patch is applied to enable the
system to return to its previous state if the patch is removed (backed out).</para>
</glossdef>
</glossentry><glossentry id="glossary_backout_directory"><glossterm>backout directory</glossterm><glossdef><para>Directory in which backout data is stored. By default, this
is the <filename>save</filename> directory of each package that was installed
by the patch.</para>
</glossdef>
</glossentry><glossentry id="glossary_dependency"><glossterm>dependency</glossterm><glossdef><para>See <olink type="custom-text" targetptr="glossary_patch_dependency" remap="internal"><emphasis role="strong">patch dependency</emphasis></olink>.</para>
</glossdef>
</glossentry><glossentry id="glossary_digital_signature"><glossterm>digital signature</glossterm><glossdef><para>An electronic signature that can be used to ensure that a
document has not been modified since the signature was applied.</para>
</glossdef>
</glossentry><glossentry id="glossary_download"><glossterm>download</glossterm><glossdef><para>To copy one or more patches from a source of patches, such
as the Sun patch server, to the system where the patches are to be applied.</para>
</glossdef>
</glossentry><glossentry id="glossary_download_directory"><glossterm>download directory</glossterm><glossdef><para>Directory in which patches are stored when they are downloaded
from the patch source. This is also the directory from which patches are applied.
The default location is <filename>/var/sadm/spool</filename>.</para>
</glossdef>
</glossentry><glossentry id="glossary_keystore"><glossterm>keystore</glossterm><glossdef><para>A repository of certificates and keys that is queried when
you attempt to apply a signed patch.</para>
</glossdef>
</glossentry><glossentry id="glossary_nonstandard_patch"><glossterm>nonstandard patch</glossterm><glossdef><para>Nonstandard patches cannot be installed  using the <command>patchadd</command> command. Nonstandard patches, those that are typically used to
deliver firmware or software application fixes that are not delivered in package
format, must be installed by using the instructions that are specified in
the patch README file.</para>
</glossdef>
</glossentry><glossentry id="glossary_order"><glossterm>order</glossterm><glossdef><para>To sort a set of patches in an order suitable for applying
patches.</para>
</glossdef>
</glossentry><glossentry id="glossary_package"><glossterm>package</glossterm><glossdef><para>The form in which software products are delivered for installation
on a system. The package contains a collection of files and directories in
a defined format.</para>
</glossdef>
</glossentry><glossentry id="glossary_patch"><glossterm>patch</glossterm><glossdef><para>An update to software that corrects an existing problem or
that introduces a feature.</para>
</glossdef>
</glossentry><glossentry id="glossary_patch_analysis"><glossterm>patch analysis</glossterm><glossdef><para>A method of checking a system to determine which patches are
appropriate for the system.</para>
</glossdef>
</glossentry><glossentry id="glossary_patch_dependency"><glossterm>patch dependency</glossterm><glossdef><para>An instance where a patch depends on the existence of another
patch on a system. A patch that depends on one or more patches can only be
applied to a system when those other patches have already been applied.</para>
</glossdef>
</glossentry><glossentry id="glossary_patch_id"><glossterm>patch ID</glossterm><glossdef><para>A unique alphanumeric string, with the patch base code first,
a hyphen, and a number that represents the patch revision number.</para>
</glossdef>
</glossentry><glossentry id="glossary_patch_incompatibility"><glossterm>patch incompatibility</glossterm><glossdef><para>A rare situation where two patches cannot be on the same system.
Each patch in the relationship is incompatible with the other. If you want
to apply a patch that is incompatible with a patch already on the system,
you must first remove the patch that is already on the system. Then, you can
apply the new patch.</para>
</glossdef>
</glossentry><glossentry id="glossary_patch_list"><glossterm>patch list</glossterm><glossdef><para>A file that contains a list of patches, one patch ID per line.
Such a list can be used to perform patch operations. The list can be generated
based on the analysis of a system or on user input.</para><para>Each line
in a patch list has two columns. The first column is the patch ID, and the
second column is a synopsis of that patch.</para>
</glossdef>
</glossentry><glossentry id="glossary_patch_obsolescence"><glossterm>patch obsolescence</glossterm><glossdef><para>An instance where a patch replaces another patch, even if
it has not already been applied to a system. A patch that obsoletes one or
more patches replaces those patches entirely and does not require that the
obsolete patches be applied before the replacement patch is applied.</para>
</glossdef>
</glossentry><glossentry id="glossary_patch_server"><glossterm>patch server</glossterm><glossdef><para>A source of Solaris patches that can be used by your systems
to perform patch analyses and from which to obtain the appropriate patches.</para>
</glossdef>
</glossentry><glossentry id="glossary_signed_patch"><glossterm>signed patch</glossterm><glossdef><para>A patch that is signed with a valid digital signature. A signed
patch offers greater security than an unsigned patch. The digital signature
of the patch can be verified before the patch is applied to your system. A
valid digital signature ensures that the signed patch has not been modified
since the signature was applied. Signed patches are stored in Java Archive
(JAR) format files.</para>
</glossdef>
</glossentry><glossentry id="glossary_update"><glossterm>software update</glossterm><glossdef><para>A change to software that you apply that corrects an existing
problem or that introduces a feature.</para>
</glossdef>
</glossentry><glossentry id="gdvur"><glossterm>special handling</glossterm><glossdef><para>Patches with properties that indicate they must be installed
in  single-user mode. Also, patches that require you to restart the system
after the patch has been applied are referred to as having <emphasis>special
handling requirements</emphasis>.</para>
</glossdef>
</glossentry><glossentry id="glossary_standard_patch"><glossterm>standard patch</glossterm><glossdef><para>Standard patches are those that adhere to the Solaris patch
specification and are installable by using the <command>patchadd</command> command.
Note that nonstandard patches cannot be installed by using the <command>patchadd</command> command</para>
</glossdef>
</glossentry><glossentry id="glossary_sun_alert"><glossterm>Sun Alert</glossterm><glossdef><para>A notification to customers of a known product issue that
might negatively impact customers' computing environments or productivity.
A problem that warrants a Sun Alert notification meets the criteria for issues
that are related to at least one of these concerns: availability, security,
and data loss.</para>
</glossdef>
</glossentry><glossentry id="glossary_sunsolve"><glossterm>SunSolve Online</glossterm><glossdef><para>The Sun Microsystems patch portal web site that provides access
to patch, patch information, and patch clusters. See <ulink url="http://sunsolve.sun.com" type="url"></ulink> for more information.</para>
</glossdef>
</glossentry><glossentry id="glossary_unsigned_patch"><glossterm>unsigned patch</glossterm><glossdef><para>A patch that is not signed with a digital signature.</para>
</glossdef>
</glossentry><glossentry id="glossary_web_proxy"><glossterm>web proxy</glossterm><glossdef><para>A system that is used to connect your system to the Internet.
Your system cannot connect directly to the Internet, but must use the web
proxy to establish the connection.</para>
</glossdef>
</glossentry>
</glosslist>
</sect1><sect1 id="swmgrpatchtasks-14"><title>Managing Solaris Patches by Using the <command>patchadd</command> Command (Task Map)</title><indexterm><primary><command>patchadd</command> command</primary><secondary>tasks using</secondary>
</indexterm><informaltable frame="all"><tgroup cols="3" colsep="1" rowsep="1"><?PubTbl tgroup dispwid="5.97in"?><colspec colname="colspec0" colwidth="30.31*"/><colspec colname="colspec1" colwidth="40.94*"/><colspec colname="colspec2" colwidth="27.74*"/><thead><row><entry colname="colspec0"><para>Task</para>
</entry><entry colname="colspec1"><para>Description</para>
</entry><entry colname="colspec2"><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>1. (Optional) Set up the package keystore.</para>
</entry><entry><para>If you plan to apply signed patches to your system, you must first import
Sun's Root CA certificate into your package keystore.</para>
</entry><entry><para><olink targetptr="swmgrpatchtasks-8" remap="internal">How to Import a Trusted Certificate
to Your Package Keystore</olink></para>
</entry>
</row><row><entry><para>2. (Optional) Specify a web proxy.</para>
</entry><entry><para>If your system is behind a firewall with a web proxy, you must specify
the web proxy to obtain patches from the Sun patch server.</para>
</entry><entry><para><olink targetptr="swmgrpatchtasks-21" remap="internal">How to Specify a Web Proxy</olink></para>
</entry>
</row><row><entry><para>3. Download and apply a patch.</para>
</entry><entry><para>You can download and apply a patch to your system by using the <command>patchadd</command> command.</para>
</entry><entry><para><olink targetptr="swmgrpatchtasks-7" remap="internal">How to Download and Apply a Solaris
Patch</olink></para>
</entry>
</row><row><entry><para>4. (Optional) Display information about patches that have been applied
to your system.</para>
</entry><entry><para>If you want information about the patches that have already been applied
to your system, use the <command>patchadd</command>, <command>showrev</command>,
or <command>pkgparam</command> command.</para>
</entry><entry><para><olink targetptr="swmgrpatchconcepts-30" remap="internal">How to Display Information
About Solaris Patches</olink></para>
</entry>
</row><row><entry><para>5. (Optional) Remove a patch from your system.</para>
</entry><entry><para>If necessary, remove a patch from your system by using the <command>patchrm</command> command.</para>
</entry><entry><para><olink targetptr="swmgrpatchtasks-18" remap="internal">How to Remove a Solaris Patch
by Using the patchrm Command</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><task id="swmgrpatchtasks-8"><title>How to Import a Trusted Certificate to
Your Package Keystore</title><tasksummary><para>To apply <olink type="custom-text" targetptr="glossary_signed_patch" remap="internal"><emphasis> signed patches</emphasis></olink> to your system by using the <command>patchadd</command> command,
you must add Sun's Root CA certificate, at the very least, to verify the signature
of your signed patch. You can import this certificate from the Java <olink type="custom-text" targetptr="glossary_keystore" remap="internal"><emphasis>keystore</emphasis></olink> to
the package keystore.</para>
</tasksummary><procedure><step><para>Become superuser or assume an equivalent role.</para>
</step><step><para>If you are using the <command>patchadd</command> command to install
signed patches, add the new trusted Verisign certificate to the keystore.</para><substeps><step><para>Download the Class 2 Public Primary Certification Authority -
G2 trusted Verisign certificate from <ulink url="http://www.sun.com/pki/certs/ca/" type="url"></ulink>.</para><para>The
Subject Name of this certificate is:</para><programlisting>C=US, O=VeriSign, Inc., OU=Class 2 Public Primary Certification
Authority - G2, OU=(c) 1998 VeriSign, Inc. - For authorized use only,
OU=VeriSign Trust Network</programlisting>
</step><step><para>Select the binary format (DER encoded).</para>
</step><step><para>Copy the certificate to the file, <filename>/tmp/root.crt</filename>.</para>
</step>
</substeps><note><para>In the event you are unable to download the trusted Verisign certificate,
see <olink targetptr="gdyuy" remap="internal">Exporting the Root CA Certificate From the Java
Keystore</olink> for alternate instructions.</para>
</note>
</step><step><para>Import the Root CA certificate from the temporary file to the
package keystore.</para><para>Unless changed by the system administrator,
the default Java keystore password is <literal>changeit</literal>.</para><para>For example:</para><screen remap="wide" width="100"># <userinput>pkgadm addcert -t -f der /tmp/root.crt</userinput>
     Keystore Alias: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
        Common Name: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
   Certificate Type: Trusted Certificate 
Issuer Common Name: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
     Validity Dates: &lt;May 18 00:00:00 1998 GMT&gt; - &lt;Aug  1 23:59:59 2028 GMT&gt;
MD5 Fingerprint: 2D:BB:E5:25:D3:D1:65:82:3A:B7:0E:FA:E6:EB:E2:E1
   SHA1 Fingerprint: B3:EA:C4:47:76:C9:C8:1C:EA:F2:9D:95:B6:CC:A0:08:1B:67:EC:9D

Are you sure you want to trust this certificate? <userinput>yes</userinput>
Trusting certificate &lt;/C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O&gt;
Type a Keystore protection Password. <userinput>changeit</userinput>
Press ENTER for no protection password (not recommended):
For Verification: Type a Keystore protection Password.
Press ENTER for no protection password (not recommended):
Certificate(s) from &lt;/tmp/root.crt&gt; are now trusted </screen><variablelist><varlistentry><term><option>t</option></term><listitem><para>Indicates that the certificate is a trusted CA certificate.
The command output includes the certificate details, which you are asked to
verify.</para>
</listitem>
</varlistentry><varlistentry><term><option>f</option> <replaceable>format</replaceable></term><listitem><para>Specifies the format of the certificate or private key. When
importing a certificate, it must be encoded using either the PEM (<literal>pem</literal>)
or binary DER (<literal>der</literal>) format.</para>
</listitem>
</varlistentry><varlistentry><term><replaceable>certfile</replaceable></term><listitem><para>Specifies the file that contains the certificate.</para>
</listitem>
</varlistentry>
</variablelist>
</step><step><para>Display the certificate information.</para><screen width="100"># <userinput>pkgadm listcert</userinput>
Enter Keystore Password: <replaceable>storepass</replaceable>
     Keystore Alias: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
        Common Name: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
   Certificate Type: Trusted Certificate
Issuer Common Name: /C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority - G2/O
Validity Dates: &lt;May 18 00:00:00 1998 GMT&gt; - &lt;Aug 1 23:59:59 2028 GMT&gt;
 MD5 Fingerprint: 2D:BB:E5:25:D3:D1:65:82:3A:B7:0E:FA:E6:EB:E2:E1
   SHA1 Fingerprint: B3:EA:C4:47:76:C9:C8:1C:EA:F2:9D:95:B6:CC:A0:08:1B:67:EC:9D</screen>
</step><step><para>Remove the temporary file.</para><screen># <userinput>rm /tmp/root.crt</userinput></screen>
</step>
</procedure>
</task><sect2 id="gdyuy"><title>Exporting the Root CA Certificate From the Java Keystore</title><para>If you are unable to download the trusted Verisign certificate from <ulink url="http://www.sun.com/pki/certs/ca/" type="url"></ulink>, as described in
Step 2 of <olink targetptr="swmgrpatchtasks-8" remap="internal">How to Import a Trusted Certificate
to Your Package Keystore</olink>, you can export the Root CA certificate from
the Java keystore to a temporary file.</para><para>For example:</para><screen># <userinput>keytool -export -storepass changeit -alias verisignclass2g2ca \
-keystore /usr/java/jre/lib/security/cacerts -file /tmp/root.crt</userinput>
Certificate stored in file &lt;/tmp/root.crt&gt;</screen><variablelist><varlistentry><term><option>export</option></term><listitem><para>Exports the trusted certificate.</para>
</listitem>
</varlistentry><varlistentry><term><option>storepass</option> <replaceable>storepass</replaceable></term><listitem><para>Specifies the password that protects the integrity of the
Java keystore.</para>
</listitem>
</varlistentry><varlistentry><term><option>alias</option> <literal>verisignclass2g2ca</literal></term><listitem><para>Identifies the alias of the trusted certificate.</para>
</listitem>
</varlistentry><varlistentry><term><option>keystore</option> <replaceable>certfile</replaceable></term><listitem><para>Specifies the name and location of the keystore file.</para>
</listitem>
</varlistentry><varlistentry><term><option>file</option> <replaceable>filename</replaceable></term><listitem><para>Identifies the file in which to hold the exported certificate.</para>
</listitem>
</varlistentry>
</variablelist><para>You are now ready to import the Root CA certificate from the temporary
file to the package keystore. See the remaining steps in the section, <olink targetptr="swmgrpatchtasks-8" remap="internal">How to Import a Trusted Certificate to Your
Package Keystore</olink>, for instructions.</para>
</sect2><task id="swmgrpatchtasks-21"><title>How to Specify a Web Proxy</title><tasksummary><para>If your system is behind a firewall with a web proxy, you must specify
the web proxy to use <command>patchadd</command> to <olink type="custom-text" targetptr="glossary_apply" remap="internal"><emphasis>apply</emphasis></olink> a patch.</para>
</tasksummary><procedure><step><para>Become superuser or assume an equivalent role.</para>
</step><step><para>Use one of the following methods to specify a web proxy:</para><itemizedlist><listitem><para>Specify the web proxy by using the <literal>http_proxy</literal>, <literal>HTTPPROXY</literal>, or <literal>HTTPPROXYPORT</literal> environment variable.</para><para>For example:</para><screen># <userinput>setenv http_proxy http:</userinput><replaceable>//mycache.domain:8080</replaceable></screen><para>Or, specify one of the following:</para><screen># <userinput>setenv HTTPPROXY</userinput> <replaceable>mycache.domain</replaceable>
# <userinput>setenv HTTPPROXYPORT</userinput> <replaceable>8080</replaceable></screen>
</listitem><listitem><para>Specify the web proxy on the <command>patchadd</command> command
line.</para><para>For example:</para><screen># <userinput>patchadd -x mycache.domain:8080 \
-M http://www.sun.com/solaris/patches/latest 101223-02 102323-02</userinput></screen>
</listitem>
</itemizedlist>
</step>
</procedure>
</task><sect2 id="gdytw"><title>Restrictions on Using <command>patchadd -R</command> to
Create an Alternate <filename>root</filename> Path</title><para>On systems that are running a Solaris release that is not zones aware,
using the <command>patchadd</command> command, or any command that accepts
the <option>R</option> option to specify an alternate <filename>root</filename> path
for a global zone that has non-global zones installed, does not work.</para><para>You can use of the <option>R</option> option to add and remove software
packages and patches, if the alternate boot environment has configured non-global
zones, but no installed non-global zones.</para><para>To avoid a potential problem, restrict the use of the <option>R</option> option
for the creation of an alternate root path.</para><itemizedlist><para>If you are running this Solaris release, you can alternately choose
one of the following methods:</para><listitem><para>Upgrade any systems that are not running the current Solaris
release.</para>
</listitem><listitem><para>Boot an alternate root as the active OS.</para>
</listitem>
</itemizedlist><itemizedlist><para>If you are running the Solaris 10 OS, you can alternately choose one
of the following methods:</para><listitem><para>Upgrade any systems that are not running at least the Solaris
10 1/06 OS to the Solaris 10 1/06 release.</para>
</listitem><listitem><para>If you are running the Solaris 10 initial 3/05 release, you
can install the following patch to enable the use of commands that accept
the <option>R</option> option for creation of an alternate root path.</para><itemizedlist><listitem><para><emphasis role="strong">For SPARC based systems</emphasis> &ndash;
Install at least revision 19 of patch 119254.</para>
</listitem><listitem><para><emphasis role="strong">For x86 based systems</emphasis> &ndash;
Install at least revision 19 patch 119255.</para>
</listitem>
</itemizedlist>
</listitem><listitem><para>Boot an alternate root, for example the Solaris 10 release,
as the active OS. You can then install and uninstall packages and patches
without using the <option>R</option> option.</para>
</listitem>
</itemizedlist><para>For more information, see the <olink targetdoc="refman" targetptr="patchadd-1m" remap="external"><citerefentry><refentrytitle>patchadd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink>, <olink targetdoc="refman" targetptr="patchrm-1m" remap="external"><citerefentry><refentrytitle>patchrm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink>, <olink targetdoc="refman" targetptr="pkgadd-1m" remap="external"><citerefentry><refentrytitle>pkgadd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink>, and <olink targetdoc="refman" targetptr="pkgrm-1m" remap="external"><citerefentry><refentrytitle>pkgrm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man pages.</para>
</sect2><task id="swmgrpatchtasks-7"><title>How to Download and Apply a Solaris Patch</title><indexterm><primary>applying patches</primary><secondary>using <command>patchadd</command></secondary>
</indexterm><tasksummary><para>Use this procedure to <olink type="custom-text" targetptr="glossary_download" remap="internal"><emphasis>download</emphasis></olink> either
a signed or an <olink type="custom-text" targetptr="glossary_unsigned_patch" remap="internal"><emphasis>unsigned Solaris patch</emphasis></olink> and then apply it to your system.</para><para>If you want to apply signed patches, you must first set up the package
keystore.</para>
</tasksummary><procedure><step><para>Gain access to the system in one of the following ways:</para><stepalternatives><step><para>Log in to the system where you want to apply the patch.</para>
</step><step><para>Download the patch and use the <command>ftp</command> command
to copy the patch to the target system.<indexterm><primary>patches</primary><secondary>downloading</secondary><tertiary>using <command>patchadd</command></tertiary></indexterm><indexterm><primary>downloading</primary><secondary>patches</secondary><tertiary>using <command>patchadd</command></tertiary></indexterm></para>
</step>
</stepalternatives>
</step><step><para>Start a web browser and go to the SunSolve Online Patch Portal
at <ulink url="http://sunsolve.Sun.COM" type="url"></ulink>.</para>
</step><step><para>Determine whether to download a specific patch or a patch cluster,
then do one of the following:</para><stepalternatives><step><para>Type the patch number (<replaceable>patch-id</replaceable>) in
the Find Patch search field, then click Find Patch.</para><para>Entering <replaceable>patch-id</replaceable> downloads the latest patch revision.</para><para>If this patch is freely available, the patch README appears. If this
patch is not freely available, an <literal>ACCESS DENIED</literal> message
appears.</para><para>Note that patch numbers for SPARC based and x86 based systems are different.
The <olink type="custom-text" targetptr="glossary_patch_id" remap="internal"><emphasis>patch
IDs</emphasis></olink> are listed in the patch README. Ensure that you apply
the patch that matches your system architecture.</para>
</step><step><para>Select the Recommended Patch Cluster that matches the Solaris
release that is running on the system that you want to patch.</para>
</step>
</stepalternatives>
</step><step><para>Download the patch by following these instructions:</para><stepalternatives><step><para>To download a copy of the signed patch, click the Download Signed
Patch (<replaceable>n</replaceable> bytes) button.</para>
</step><step><para>To download an unsigned patch, click the Download Patch (<replaceable>n</replaceable> bytes) button.</para>
</step>
</stepalternatives><para>When the patch or patches are successfully downloaded, close the web
browser.</para>
</step><step><para>Change to the directory that contains the downloaded patch.</para>
</step><step><para>Become superuser or assume an equivalent role.</para>
</step><step><para>(<emphasis>Unsigned patch</emphasis>) If you downloaded an unsigned
patch, unzip the patch.</para><screen># <userinput>unzip <replaceable>patch-id</replaceable></userinput></screen>
</step><step><para>Apply the signed or unsigned patch.</para><itemizedlist><listitem><para>If you downloaded a signed patch, apply it.</para><para>For
example:</para><screen># <userinput>patchadd /tmp/111879-01.jar</userinput></screen>
</listitem><listitem><para>If you downloaded an unsigned patch, apply it.</para><para>For
example:</para><screen># <userinput>patchadd /tmp/111879-01</userinput></screen>
</listitem>
</itemizedlist>
</step><step><para>Verify that the patch has been successfully applied.</para><para>For
example:</para><screen># <userinput>patchadd -p | grep 111879</userinput>
Patch: 111879-01 Obsoletes:  Requires:  Incompatibles:  Packages: SUNWwsr</screen>
</step>
</procedure>
</task><task id="swmgrpatchconcepts-30"><title>How to Display Information About Solaris
Patches</title><indexterm><primary>patches</primary><secondary>displaying information about</secondary>
</indexterm><indexterm><primary>patch lists</primary><secondary>displaying</secondary><tertiary>using <command>patchadd</command></tertiary>
</indexterm><indexterm><primary>displaying</primary><secondary>list of patches</secondary><tertiary>using <command>patchadd</command></tertiary>
</indexterm><indexterm><primary>viewing</primary><secondary>patch lists</secondary><tertiary>using <command>patchadd</command></tertiary>
</indexterm><tasksummary><para>Before applying patches, you might want to know more about patches that
have been previously applied.</para><itemizedlist><para>The following commands provide useful information about patches that
are already applied to a system.</para><listitem><para><command>patchadd -p</command> or <command>showrev -p</command></para><para>Shows all patches that have been applied to the system.</para>
</listitem><listitem><para><command>pkgparam</command> <replaceable>pkgid</replaceable> <command>PATCHLIST</command></para><para>Shows all patches that have been applied to
the package identified by <emphasis>pkgid</emphasis>, for example, <literal>SUNWadmap</literal>.</para>
</listitem><listitem><para><command>patchadd -S</command> <replaceable>Solaris-OS</replaceable> <option>p</option></para><para>Shows all the <filename>/usr</filename> patches that
have been applied to an OS server.</para>
</listitem>
</itemizedlist>
</tasksummary><procedure remap="single-step"><step><para>Use one of the following <command>patchadd</command> command lines
to display information about patches that have been applied to your system.</para><itemizedlist><listitem><para>To obtain information about all patches that have been applied
to your system, type:</para><screen>$ <userinput>patchadd -p</userinput></screen>
</listitem><listitem><para>To verify whether a particular patch has been applied to your
system, type, for example:</para><screen>$ <userinput>patchadd -p | grep 111879</userinput></screen>
</listitem>
</itemizedlist>
</step>
</procedure>
</task><task id="swmgrpatchtasks-18"><title>How to Remove a Solaris Patch by Using
the <command>patchrm</command> Command</title><indexterm><primary>removing</primary><secondary>patches</secondary><tertiary>using <command>patchrm</command></tertiary>
</indexterm><procedure><step><para>Become superuser.</para>
</step><step><para>Remove the patch.</para><screen># <userinput>patchrm 111879-01</userinput>
Checking installed patches...

Backing out patch 111879-01...

Patch 111879-01 has been backed out.</screen>
</step><step><para>Verify that the patch was removed.</para><screen># <userinput>patchadd -p | grep 111879</userinput>
#</screen>
</step>
</procedure>
</task>
</sect1>
</chapter><?Pub *0000043621 0?>