patchrm(1M)




NAME

     patchrm - remove a Solaris patch package and restore  previ-
     ously saved files


SYNOPSIS

     patchrm  [-f]   [-B backout_dir]   [-C net_install_image   |
     -R client_root_path | -S service]  patch_id


DESCRIPTION

     patchrm removes a  patch  package  and  restores  previously
     saved  files  to  a system running the Solaris 2.x operating
     environment or later Solaris environments (such  as  Solaris
     8)  that  are compatible with Solaris 2.x. patchrm cannot be
     used with Solaris 1 patches. patchrm must be run as root.


OPTIONS

     The following options are supported:

     -B backout_dir
           Removes a patch whose backout data has been saved to a
           directory other than the package database. This option
           is only needed if the original backout directory, sup-
           plied  to  the  patchadd command at installation time,
           has been moved. Specify  backout_dir  as  an  absolute
           path name.

     -C net_install_image
           Removes the patched files located on the mini root  on
           a  Net Install Image created by  setup_install_server.
           Specify net_install_image as the  absolute  path  name
           to a Solaris 2.6 or compatible version boot directory.
           See EXAMPLES.

     -f    Forces the patch removal  regardless  of  whether  the
           patch was superseded by another patch.

     -R client_root_path
           Locates all patch files generated by patchrm under the
           directory  client_root_path.  client_root_path  is the
           directory that contains the bootable root of a  client
           from     the     server's     perspective.     Specify
           client_root_path as the  absolute  path  name  to  the
           beginning  of the directory tree under which all patch
           files generated from patchrm will be located. -R  can-
           not be specified with the -S option.

     -S service
           Specifies   an   alternate   service   (for   example,
           Solaris_2.3).  This  service is part of the server and
           client model, and can only be used from  the  server's
           console.  Servers can contain shared /usr file systems
           that are created by Host Manager. These service  areas
           can  then be made available to the clients they serve.
           -S cannot be specified with the -R option..


OPERANDS

     The following operands are supported:

     patch_id
           The patch number of a given  patch.  104945-02  is  an
           example of a patch_id.


EXAMPLES

     The examples in this section assume that patch 104945-02 has
     been  installed  to  the system prior to removal. All of the
     examples are relative to the /usr/sbin directory.

     Example 1: Removing a Patch From a Stand-alone System

     The following example removes a patch from a standalone sys-
     tem:

     example# patchrm 104945-02

     Example 2: Removing a Patch From a Client's System From  the
     Server's Console

     The following example removes a patch from a client's system
     from the server's console:

     example# patchrm -R /export/root/client1 104945-02

     Example 3: Removing a Patch From a Server's Service Area

     The following example removes a patch from a  server's  ser-
     vice area:

     example# patchrm -S Solaris_2.3 104945-02

     Example 4: Removing a Patch From a Net Install Image

     The following example removes a patch  from  a  Net  Install
     Image:

     example# patchrm -C /export/Solaris_2.6/Tools/Boot 104945-02


EXIT STATUS

     The following exit values are returned:

     0     Successful completion.

     >0    An error occurred.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWswmt, SUNWcsu           |
    |_____________________________|_____________________________|


DIAGNOSTICS

     The following messages may help in determining some  of  the
     most common problems associated with backing out a patch.

     Message

           prebackout patch exited with return code code.
           patchrm exiting.

           Explanation and Recommended Action
                 The prebackout script supplied  with  the  patch
                 exited with a return code other than 0. Generate
                 a script  trace  of  the  prebackout  script  to
                 determine  why the prebackout script failed. Add
                 the -x option to the first line of the  prepatch
                 script  to  fix  the  problem  and  run patchadd
                 again.

     Message

           postbackout patch exited with return code code.
           patchrm exiting.

           Explanation and Recommended Action
                 The postbackout script supplied with  the  patch
                 exited  with a return code other than 0. Look at
                 the  postbackout  script  to  determine  why  it
                 failed.   Add the -x option to the first line of
                 the prepatch script to fix the problem, and,  if
                 necessary,  re-exececute  the postbackout script
                 only.

     Message
           Only one service may be defined.

           Explanation and Recommended Action
                 You have attempted to specify more than one ser-
                 vice  from  which  to backout a patch. Different
                 services must have their patches backed out with
                 different invocations of patchrm.

     Message

           The -S and -R arguments are mutually exclusive.

           Explanation and Recommended Action
                 You have specified both a non-native service and
                 a  client_root_path  from  which  to  backout  a
                 patch.  These   two   arguments   are   mutually
                 exclusive.  If  backing  out a patch from a non-
                 native usr partition, the -S  option  should  be
                 used.  If  backing  out  a patch from a client's
                 root partition (either  native  or  non-native),
                 the -R option should be used.

     Message

           The service service cannot be found on this system

           Explanation and Recommended Action
                 You have specified  a  non-native  service  from
                 which to backout a patch, but the specified ser-
                 vice is not installed on your system.  Correctly
                 specify the service when backing out the patch.

     Message

           Only one client_root_path may be defined.

           Explanation and Recommended Action
                 You    have    specified    more    than     one
                 client_root_path  using  the  -R  option. The -R
                 option may be used only once per  invocation  of
                 patchrm.

     Message

           The dir directory cannot be found on this system.

           Explanation and Recommended Action
                 You have specified  a  directory  using  the  -R
                 option  which is either not mounted, or does not
                 exist on your system. Verify the directory  name
                 and re-backout the patch.

     Message

           Patch patch_id has not been successfully installed to this system.

           Explanation and Recommended Action
                  You have attempted to backout a patch  that  is
                 not  installed  on  this  system.  If  you  must
                 restore previous versions of patched files,  you
                 may  have to restore the original files from the
                 initial installation CD.

     Message

           Patch patch_id has not been successfully applied to this system.
           Will remove directory dir.

           Explanation and Recommended Action
                 You have attempted to back out a patch  that  is
                 not  applied to this system. While the patch has
                 not      been      applied,      a      residual
                 /var/sadm/patch/patch_id (perhaps from an unsuc-
                 cessful patchadd) directory  still  exists.  The
                 patch  cannot be backed out. If you must restore
                 old versions of the patched files, you may  have
                 to  restore  them  from the initial installation
                 CD.

     Message

           This patch was obsoleted by patch patch_id.
           Patches must be backed out in the reverse order in
           which they were installed. Patch backout aborted.

           Explanation and Recommended Action
                 You are attempting to  backout  patches  out  of
                 order. Patches should never be backed-out out of
                 sequence. This could undermine the integrity  of
                 the more current patch.

     Message

           Patch patch_id is required to be installed by an already
           installed patch_id.
           It cannot be backed out until the required patch is backed out first.

           Explanation and Recommended Action
                 Backout  the  patch  that  is  required  to   be
                 installed then backout the desired patch.

     Message

           The installation of patch patch_id was interrupted.

           Explanation and Recommended Action
                 A previous  installation  was  interrupted.  The
                 interrupted  patch  needs to be installed before
                 backing out the desired patch.

     Message

           Patch patch_id was installed without backing up the original
           files. It cannot be backed out.

           Explanation and Recommended Action
                 Either the -d option of patchadd  was  set  when
                 the  patch  was applied, or the save area of the
                 patch was deleted to regain space. As a  result,
                 the  original  files  are  not saved and patchrm
                 cannot be used. The original files can  only  be
                 recovered from the original installation CD.

     Message

           pkgadd of pkgname package failed return code code.
           See /var/sadm/patch/patch_id/log for reason for failure.

           Explanation and Recommended Action
                 The  installation  of  one  of  patch   packages
                 failed.  See  the  log  file  for the reason for
                 failure. Correct the problem and run the backout
                 script again.

     Message

           Restore of old files failed.

           Explanation and Recommended Action
                 The backout script  uses  the  cpio  command  to
                 restore  the previous versions of the files that
                 were patched. The output  of  the  cpio  command
                 should  have  preceded  this  message.  The user
                 should take the appropriate  action  to  correct
                 the  cpio  failure.  This  is for Solaris 2.4 or
                 previous versions.


SEE ALSO

     cpio(1), pkginfo(1), patchadd(1M),  pkgadd(1M),  pkgchk(1M),
     pkgrm(1M), showrev(1M), attributes(5)


NOTES

     On client server machines the patch package is  not  removed
     from  existing  clients  or from client root template space.
     Therefore, when appropriate, all client machines  will  need
     the patch removed directly using this same patchrm method on
     the client. A bug affecting a package utility (for  example,
     pkgadd,  pkgrm,  pkgchk)  could  affect  the  reliability of
     patchadd or patchrm which use package utilities  to  install
     and  backout  the  patch package. It is recommended that any
     patch that fixes package utility problems be  reviewed  and,
     if  necessary,  applied  before  other  patches are applied.
     Existing patches are:

          Solaris 2.1:
                patch 100901

          Solaris 2.2:
                101122

          Solaris 2.3:
                10133

          Solaris 2.4 Sparc Platform Edition:
                102039

          Solaris 2.4 Intel Platform Edition:
                102041

          Solaris 2.5.1 Sparc Platform Edition:
                104578

          Solaris 2.51 Intel Platform Edition:
                104579

          Solaris 2.6 Sparc Platform Edition:
                106292

          Solaris 2.6 Intel Platform Edition:
                106293


Man(1) output converted with man2html