1patchadd(1M)            System Administration Commands            patchadd(1M)
2
3
4

NAME

6       patchadd  - apply a patch package to a system running the Solaris oper‐
7       ating system
8

SYNOPSIS

10       patchadd [-dun] [-G] [-B backout_dir] [-k keystore]
11            [-P passwd] [-t] [-x proxy] {patch} |
12            {-M patch_location [patch_list]} [-C net_install_image |
13            -R client_root_path | -S service]
14
15
16       patchadd -p
17            [-C net_install_image | -R client_root_path | -S service]
18
19

DESCRIPTION

21       patchadd applies a patch package to a system running  the  Solaris  2.x
22       operating  environment  or  later Solaris environments (such as Solaris
23       10) that are compatible with Solaris 2.x. This patch installation util‐
24       ity  cannot be used to apply Solaris 1 patches. patchadd must be run as
25       root.
26
27
28       The patchadd command has the following forms:
29
30           o      The first form of patchadd installs one or more patches to a
31                  system, client, service, or to the miniroot of a Net Install
32                  Image.
33
34           o      The second form of patchadd displays  installed  patches  on
35                  the  client,  service,  or  to the miniroot of a Net Install
36                  Image.
37
38
39       Starting with version 10 of the Solaris operating system, patchadd per‐
40       forms  validity  and  dependency checking among a collection of patches
41       that you specify with the -M source specifier. See the  description  of
42       -M under OPERANDS, below.
43
44
45       With  respect to zones(5), when invoked in the global zone, by default,
46       patchadd patches all appropriate packages in all zones. Patching behav‐
47       ior  on  system  with zones installed varies according to the following
48       factors:
49
50           o      use of the -G option (described below)
51
52           o      setting of the SUNW_PKG_ALLZONES  variable  in  the  pkginfo
53                  file (see pkginfo(4))
54
55           o      type of zone, global or local (non-global) in patchadd which
56                  is invoked
57
58
59       The interaction of the factors above is specified in "Interaction of -G
60       and pkginfo Variable in Zones," below.
61
62
63       When  you  add  patches  to  packages  on  a  Solaris system with zones
64       installed, you will see numerous zones-related messages, the  frequency
65       and  content of which depend on whether you invoke patchadd in a global
66       or local zone, the setting of SUNW_PKG_ALLZONES, and the use of the  -G
67       option.
68
69
70       The  patch,  -M,  -C,  -R,  and  -S arguments shown in the SYNOPSIS are
71       described under OPERANDS, following OPTIONS.
72

OPTIONS

74       The following options are supported:
75
76       -B backout_dir
77
78           Saves backout data to a directory other than the package  database.
79           Specify backout_dir as an absolute path name.
80
81
82       -d
83
84           Does  not  back  up  the  files  to be patched. The patch cannot be
85           removed.
86
87
88       -G
89
90           Add patch(es) to packages in the current zone only.  When  used  in
91           the  global zone, the patch is added to packages in the global zone
92           only and is not propagated to packages in any existing  or  yet-to-
93           be-created  non-global  zone.  When  used in a non-global zone, the
94           patch is added to packages in the non-global zone only. See "Inter‐
95           action of -G and pkginfo Variable in Zones,", below.
96
97
98       -k keystore
99
100           Use  keystore  as the location to get trusted certificate authority
101           certificates when verifying digital signatures found in each patch.
102           If  no  keystore  is specified, then the default keystore locations
103           are searched for valid trusted certificates. See  KEY  STORE  LOCA‐
104           TIONS in pkgadd(1M) for more information.
105
106
107       -n
108
109           Tells patchadd to ignore the signature and not to validate it. This
110           should be used only when the content of  the  patch  is  known  and
111           trusted,  and  is  primarily  included to allow patchadd to apply a
112           patch on systems without the ability to verify the patch signature,
113           such as Solaris 8.
114
115
116       -p
117
118           In  the  second  form,  displays  a  list  of the patches currently
119           applied.
120
121
122       -P passwd
123
124           Password to use to decrypt  the  keystore  specified  with  -k,  if
125           required. See PASS PHRASE ARGUMENTS in pkgadd(1M) for more informa‐
126           tion about the format of this option's argument.
127
128
129       -t
130
131           Maintains the patchadd return codes from the Solaris release  prior
132           to  Solaris  10. On a system with zones(5) installed, a return code
133           of 0 indicates success. Any other return code indicates failure.
134
135
136       -u
137
138           Turns  off  validation  against  other  required  or   incompatible
139           patches.  Use  extreme  caution when using this option. Its use can
140           precipitate unanticipated bad consequences.
141
142
143       -x proxy
144
145           Specify a HTTP[S] proxy to use when downloading packages The format
146           of  proxy  is  host:port, where host is the hostname of the HTTP[S]
147           proxy, and port is the port number associated with the proxy.  This
148           switch overrides all other methods of specifying a proxy. See ENVI‐
149           RONMENT VARIABLES in pkgadd(1M) for more information  on  alternate
150           methods of specifying a default proxy.
151
152

OPERANDS

154       The following operands are supported:
155
156   Sources
157       patchadd  must  be  supplied a source for retrieving the patch. Specify
158       sources using the syntax shown below.
159
160       patch
161
162           The absolute path name to patch_id or a URI pointing  to  a  signed
163           patch.  /var/sadm/spool/patch/104945-02  is  an example of a patch.
164           https://syrinx.eng:8887/patches/104945-02 is an example  of  a  URI
165           pointing to a signed patch.
166
167
168       -M patch_location [patch_list]
169
170           Specifies  the patches to be installed by directory location or URL
171           and, optionally, the name of a file containing a patch list.
172
173           When using a directory as the patch_location, specify  that  direc‐
174           tory as an absolute path name. Specify a URL as the server and path
175           name that contains the spooled patches. The optional patch_list  is
176           the name of the file at a specified location containing the patches
177           to be installed.
178
179
180       -M patch_location patch_id [patch_id...]
181
182           Specifies the patches to be installed by directory location or URL,
183           and patch number.
184
185           To  use the directory location or URL and the patch number, specify
186           patch_location as the absolute path name of the directory that con‐
187           tains  spooled  patches.  Specify a URL as the server and path name
188           that contains the spooled patches. Specify patch_id  as  the  patch
189           number  of  a  given  patch. 104945-02 is an example of a patch_id.
190           104945-02 is also an example of a patchid in 104945-02.jar.
191
192
193
194       Note that patchadd does not require a list of patches. Among a  collec‐
195       tion  of  patches—residing  in  a  directory,  specified  in a list, or
196       entered on a command line—patchadd  performs  validity  and  dependency
197       checking. Specifically, the command does the following:
198
199           o      Determines  whether  a patch is applicable for a system. For
200                  example, if the package to  be  patched  is  not  installed,
201                  patchadd does not attempt to add the patch.
202
203           o      Establishes  dependencies among valid patches and orders the
204                  installation of patches accordingly.
205
206
207       Most users will find the easiest way to specify a source  for  patchadd
208       is to specify only a patch_location containing a set of patches.
209
210   Destinations
211       By  default,  patchadd applies a patch to the specified destination. If
212       no destination is specified, then the current system (the one with  its
213       root  filesystem mounted at /) is assumed to be the destination for the
214       patch. You can specify a destination in the following ways:
215
216       -C net_install_image
217
218           Patches the files located on the miniroot on a  Net  Install  Image
219           created  by  setup_install_server. Specify net_install_image as the
220           absolute path name to a Solaris 8 or compatible version boot direc‐
221           tory. See EXAMPLES.
222
223           You  should use the -C option only to install patches that are rec‐
224           ommended for installation to the miniroot. Patches that are  recom‐
225           mended  for  installation  to the miniroot usually include install-
226           related patches such as package commands, and Sun install and patch
227           installation  tools.  If you apply too many patches to the miniroot
228           it can grow too large to fit into memory during a net  installation
229           of  Solaris.  Use  the  -B option and the -C option together so the
230           miniroot does not get too large. See -B, above.
231
232           Note that in the current release and in certain versions of Solaris
233           10,  the  miniroot is compressed. To determine whether the miniroot
234           is compressed on your system, look for a file called sparc.miniroot
235           or  x86.miniroot  under  /boot,  on the boot medium. Before you can
236           patch a compressed miniroot, you must perform certains  steps.  See
237           "Patching a Compressed Miniroot" below.
238
239
240       -R client_root_path
241
242           Locates  all  patch files generated by patchadd under the directory
243           client_root_path. client_root_path is the directory  that  contains
244           the  bootable root of a client from the server's perspective. Spec‐
245           ify client_root_path as the absolute path name to the beginning  of
246           the  directory  tree  under  which  all  patch  files  generated by
247           patchadd are to be located. -R cannot  be  specified  with  the  -S
248           option. See NOTES.
249
250           Note -
251
252             The  root  file system of any non-global zones must not be refer‐
253             enced with the -R option. Doing so might damage the global zone's
254             file  system,  might  compromise the security of the global zone,
255             and might damage the non-global zone's file system. See zones(5).
256
257
258       -S service
259
260           Specifies an alternate service (for example, Solaris_8). This  ser‐
261           vice  is  part of the server and client model, and can only be used
262           from the server's console. Servers can  contain  shared  /usr  file
263           systems  that  are  created by smosservice(1M). These service areas
264           can then be made available to the clients they serve. -S cannot  be
265           specified with the -R option. See NOTES.
266
267
268   Patching a Compressed Miniroot
269       The Solaris operating system uses a compressed miniroot. The compressed
270       miniroot was adopted first in Solaris for x86 and then in  Solaris  for
271       SPARC  over  the course of Solaris 10 update releases. See below for an
272       easy way to determine whether your Solaris  system  uses  a  compressed
273       miniroot.
274
275
276       To  patch  a  system  with a compressed miniroot (full or partial), you
277       must unpack and then repack  the  miniroot  before  and  after  running
278       patchadd  with  the  -C  destination specifier. Use the procedure shown
279       below and accompanying example commands.
280
281           1.     Unpack the compressed miniroot:
282
283                    # /boot/solaris/bin/root_archive unpackmedia \
284                    /export/home/altuser/testdir /export/home/altuser/mr
285
286
287
288           2.     Run patchadd with -C to patch the miniroot:
289
290                    # patchadd -C /export/home/altuser/mr \
291                    /var/sadm/spool/104945-02
292
293
294
295           3.     Repack the miniroot:
296
297                    # /boot/solaris/bin/root_archive packmedia \
298                    /export/home/altuser/testdir /export/home/altuser/mr
299
300
301
302
303       At this point, you can  use  setup_install_server(1M)  to  install  the
304       patched  miniroot  on  an  install  server.  See root_archive(1M) for a
305       description of that command.
306
307
308       To determine whether a Solaris image uses a compressed miniroot,  check
309       for the presence of either an x86.miniroot or sparc.miniroot file under
310       /boot on the boot medium.
311
312   Interaction of -G and pkginfo Variable in Zones
313       The following list specifies the interaction between the -G option  and
314       the  SUNW_PKG_ALLZONES variable (see pkginfo(4)) when adding a patch in
315       global and local (non-global) zones.
316
317       global zone, -G specified
318
319           If any packages have SUNW_PKG_ALLZONES set to true: Error;  nothing
320           changes.
321
322           If  no  packages have SUNW_PKG_ALLZONES set to true: Apply patch to
323           package(s) in global zone only.
324
325
326       global zone, -G not specified
327
328           If any packages have SUNW_PKG_ALLZONES set to true: Apply patch  to
329           appropriate package(s) in all zones.
330
331           If  no  packages have SUNW_PKG_ALLZONES set to true: Apply patch to
332           appropriate package(s) in all zones.
333
334
335       local zone, -G specified or not specified
336
337           If any packages have SUNW_PKG_ALLZONES set to true: Error;  nothing
338           changes.
339
340           If  no  packages  have  SUNW_PKG_ALLZONES  set to true: Apply patch
341           package(s) in local zone only.
342
343

KEYSTORE LOCATIONS

345       See the section KEYSTORE LOCATIONS  in  the  pkgadd(1M)  man  page  for
346       details.
347

KEYSTORE AND CERTIFICATE FORMATS

349       See  the section KEYSTORE AND CERTIFICATE FORMATS in the pkgadd(1M) man
350       page for details.
351

EXAMPLES

353       The examples in this section are all relative to the  /usr/sbin  direc‐
354       tory.
355
356       Example 1 Installing a Patch to a Standalone Machine
357
358
359       The following example installs a patch to a standalone machine:
360
361
362         example# patchadd /var/sadm/spool/104945-02
363
364
365
366       Example 2 Installing a Patch to a Client From the Server's Console
367
368
369       The  following  example  installs a patch to a client from the server's
370       console:
371
372
373         example# patchadd -R /export/root/client1  /var/sadm/spool/104945-02
374
375
376
377       Example 3 Installing a Patch to a Service From the Server's Console
378
379
380       The following example installs a patch to a service from  the  server's
381       console:
382
383
384         example# patchadd -S Solaris_8 /var/sadm/spool/104945-02
385
386
387
388       Example 4 Installing Multiple Patches in a Single Invocation
389
390
391       The  following  example  installs multiple patches in a single patchadd
392       invocation:
393
394
395         example# patchadd -M /var/sadm/spool 104945-02 104946-02 102345-02
396
397
398
399       Example 5 Installing Multiple Patches Specifying  List  of  Patches  to
400       Install
401
402
403       The  following example installs multiple patches specifying a file with
404       the list of patches to install:
405
406
407         example# patchadd -M /var/sadm/spool patchlist
408
409
410
411       Example 6 Installing Multiple Patches to a Client and Saving the  Back‐
412       out Data
413
414
415       The  following  example installs multiple patches to a client and saves
416       the backout data to a directory other than the default:
417
418
419         example# patchadd -M /var/sadm/spool -R /export/root/client1 \
420              -B /export/backoutrepository 104945-02 104946-02 102345-02
421
422
423
424       Example 7 Installing a Patch to a Solaris 8 or Compatible  Version  Net
425       Install Image
426
427
428       The  following  example  installs  a patch to a Solaris 8 or compatible
429       version Net Install Image:
430
431
432         example# patchadd -C /export/Solaris_8/Tools/Boot \
433             /var/sadm/spool/104945-02
434
435
436
437       Example 8 Installing a Patch to a Compressed Miniroot
438
439
440       The following example installs a patch to a compressed  miniroot,  such
441       as one finds on a Solaris x86 machine that supports GRUB-style booting.
442       This example assumes that  /export/Solaris_11/Tools/Boot  contains  the
443       unpacked  miniroot.  After applying the patch, the miniroot needs to be
444       repacked
445
446
447         example# patchadd -C /export/Solaris_11/Tools/Boot \
448         /var/sadm/spool/104945-02
449
450
451
452
453       See "Patching a Compressed Miniroot," above, for information on Solaris
454       versions that use a compressed miniroot.
455
456
457       Example 9 Installing a Patch to an Uncompressed Miniroot
458
459
460       The  following  example  installs  a  patch  to a miniroot on a Solaris
461       machine that does not have a compressed miniroot.
462
463
464         example# patchadd -C /export/Solaris_9/Tools/Boot \
465         /var/sadm/spool/104945-02
466
467
468
469
470       See "Patching a Compressed Miniroot," above, for information on Solaris
471       versions that use a compressed miniroot.
472
473
474       Example 10 Displaying the Patches Installed on a Client
475
476
477       The following example displays the patches installed on a client:
478
479
480         example# patchadd -R /export/root/client1 -p
481
482
483
484
485       Note  the caveat on the use of the -R option in the description of that
486       option, above.
487
488
489       Example 11 Installing a Digitally Signed Set of Patches
490
491
492       The following example installs multiple patches,  some  of  which  have
493       been signed, using the supplied keystore, password, and HTTP proxy.
494
495
496         example# patchadd -k /etc/mycerts -P pass:abcd -x webcache.eng:8080 \
497         -M http://www.sun.com/solaris/patches/latest 101223-02 102323-02
498
499
500

EXIT STATUS

502       The following exit values are returned:
503
504       0
505
506           Successful completion.
507
508
509       >0
510
511           An error occurred.
512
513

ATTRIBUTES

515       See attributes(5) for descriptions of the following attributes:
516
517
518
519
520       ┌─────────────────────────────┬─────────────────────────────┐
521       │      ATTRIBUTE TYPE         │      ATTRIBUTE VALUE        │
522       ├─────────────────────────────┼─────────────────────────────┤
523       │Availability                 │SUNWswmt, SUNWcsu            │
524       ├─────────────────────────────┼─────────────────────────────┤
525       │Interface Stability          │Evolving                     │
526       └─────────────────────────────┴─────────────────────────────┘
527

SEE ALSO

529       cpio(1),  pkginfo(1),  patchrm(1M), pkgadd(1M), pkgadm(1M), pkgchk(1M),
530       pkgrm(1M),    setup_install_server(1M),    smpatch(1M),    showrev(1M),
531       pkginfo(4), attributes(5), grub(5), zones(5)
532

DIAGNOSTICS

534       The  following messages might help in determining some of the most com‐
535       mon problems associated with installing a patch.
536
537   Patch Installation errors
538       Message
539
540
541             The prepatch script exited with return code retcode.
542             patchadd is terminating.
543
544
545
546           Explanation and Recommended Action
547
548               The prepatch script supplied  with  the  patch  exited  with  a
549               return  code  other  than 0. Run a script trace of the prepatch
550               script and find out why the prepatch had a bad return code. Add
551               the  -x  option to the first line of the prepatch script to fix
552               the problem and run patchadd again.
553
554
555
556       Message
557
558
559             The signature on patch patch_id was unable to be verified.
560             patchadd is terminating.
561
562
563
564           Explanation and Recommended Action
565
566               The digital signature on a patch  was  unable  to  be  verified
567               given the keystore in use and the signature on the patch. Check
568               the keystore to make sure it has the requisite trust  anchor(s)
569               required  to validate the signature on the package and that the
570               package has not been tampered with.
571
572
573
574       Message
575
576
577             The postpatch script exited with return code retcode.
578             Backing out patch.
579
580
581
582           Explanation and Recommended Action
583
584               The postpatch script provided with the  patch  exited  with  an
585               error  code other than 0. This script is mostly used to cleanup
586               files (that is, when a package is known to  have  ownership  or
587               permission  problems)  attributes that do not correspond to the
588               patch package's objects. After the user has noted  all  valida‐
589               tion  errors and taken the appropriate action for each one, the
590               user  should  re-run  patchadd  using  the  -u  (unconditional)
591               option.  This  time, the patch installation will ignore valida‐
592               tion errors and install the patch anyway.
593
594
595
596       Message
597
598
599             Insufficient space in /var/sadm/patch to save old files.
600             (For 2.4 systems and previous)
601
602
603
604           Explanation and Recommended Action
605
606               There is insufficient space in the /var/sadm/patch directory to
607               save  old  files.  The user has three options for handling this
608               problem: Use the -B option while invoking patchadd. This option
609               will  direct  patchadd  to:  save  the backout data to the user
610               specified file system, generate additional disk space by delet‐
611               ing  unneeded files, or override the saving of the old files by
612               using the -d (do not save) option when running patchadd.
613
614               If the user elects not to save the old versions of the files to
615               be  patched, patchrm cannot be used. One way to regain space on
616               a system is to remove the  save  area  for  previously  applied
617               patches.  Once  the user has decided that it is unlikely that a
618               patch will be backed out, the user can remove  the  files  that
619               were  saved  by patchadd. The following commands should be exe‐
620               cuted to remove the saved files for patchpatch_id:
621
622                 cd /var/sadm/patch/patch_id
623                 rm -r save/*
624                 rm .oldfilessaved
625
626
627               After these commands have been executed, patch patch_id can  no
628               longer be backed out.
629
630
631
632       Message
633
634
635             Insufficient space in /var/sadm/pkg/PKG/save to save old files.
636             (For 2.5 systems and later)
637
638
639
640
641           Explanation and Recommended Action
642
643               There  is  insufficient  space  in  the  /var/sadm/pkg/PKG/save
644               directory to save old files. The user  has  three  options  for
645               handling  this  problem:  (1)  Use the -B option while invoking
646               patchadd. This option will direct patchadd to save the  backout
647               data  to  the user specified file system. (See synopsis above.)
648               (2) Generate additional disk space by deleting unneeded  files,
649               or (3) override the saving of the old files by using the -d (do
650               not save) option when running patchadd. However,  if  the  user
651               elects not to save the old versions of the files to be patched,
652               patchrm cannot be used. One way to regain space on a system  is
653               to  remove  the  save area for previously applied patches. Once
654               the user has decided that it is unlikely that a patch  will  be
655               backed  out,  the  user can remove the files that were saved by
656               patchadd. The following commands should be executed  to  remove
657               the saved files for patch patch_id:
658
659                 cd /var/sadm/pkg/pkgabbrev/save
660                 rm -r patch_id
661
662
663               After  these commands have been executed, patch patch_id can no
664               longer be backed out.
665
666
667
668       Message
669
670
671             Save of old files failed.
672             (For 2.4 systems and previous)
673
674
675
676           Explanation and Recommended Action
677
678               Before applying the patch, the patch installation  script  uses
679               cpio  to save the old versions of the files to be patched. This
680               error message means that the cpio failed.  The  output  of  the
681               cpio  would  have  been  preceded this message. The user should
682               take the appropriate action to correct the cpio failure. A com‐
683               mon  reason for failure will be insufficient disk space to save
684               the old versions of the files. The user  has  two  options  for
685               handling  insufficient disk space: (1) generate additional disk
686               space by deleting unneeded files, or (2) override the saving of
687               the  old  files  by  using the -d option when running patchadd.
688               However if the user elects not to save the old versions of  the
689               files to be patched, the patch cannot be backed out.
690
691
692
693       Message
694
695
696             Pkgadd of pkgname package failed with error code code.
697             See /tmp/log.patch_id for reason for failure.
698
699
700
701
702           Explanation and Recommended Action
703
704               The  installation of one of the patch packages failed. patchadd
705               will backout the patch to leave the system in  its  pre-patched
706               state. See the log file for the reason for failure. Correct the
707               problem and reapply the patch.
708
709
710
711       Message
712
713
714             Pkgadd of pkgname package failed with error code code.
715             Will not backout patch...patch re-installation.
716             Warning: The system may be in an unstable state!
717             See /tmp/log.patch_id for reason for failure.
718
719
720
721           Explanation and Recommended Action
722
723               The installation of one of the patch packages failed.  patchadd
724               will  not backout the patch. You may manually backout the patch
725               using patchrm, then re-apply the entire patch. Look in the  log
726               file  for the reason pkgadd failed. Correct the problem and re-
727               apply the patch.
728
729
730
731       Message
732
733
734             patchadd is unable to find the INST_RELEASE file. This file
735             must be present for patchadd to function correctly.
736
737
738
739           Explanation and Recommended Action
740
741               The INST_RELEASE file is missing from the system. This file  is
742               created during either initial installation or during an update.
743
744
745
746       Message
747
748
749             A previous installation of patch patch_id was invoked
750             that saved files that were to be patched. Since files
751             were saved, you must run this instance of patchadd
752             without the -d option.
753
754
755
756           Explanation and Recommended Action
757
758               If  a  patch  was  previously  installed  without  using the -d
759               option, then the re-installation attempt must also  be  invoked
760               without the -d option. Execute patchadd without the -d option.
761
762
763
764       Message
765
766
767             A previous installation of patch patch_id was invoked
768             with the -d option. (i.e. Do not save files that would
769             be patched) Therefore, this invocation of patchadd
770             must also be run with the -d option.
771
772
773
774           Explanation and Recommended Action
775
776               If  a  patch was previously installed using the -d option, then
777               the re-installation attempt must also  be  invoked  with  the-d
778               option. Execute patchadd with the -d' option.
779
780
781
782   Diagnostic Reference
783       The  patch  installation messages listed below are not necessarily con‐
784       sidered errors, as indicated in the explanations given. These  messages
785       are,  however,  recorded  in  the patch installation log for diagnostic
786       reference.
787
788       Message
789
790
791             Package not patched:
792             PKG=SUNxxxx
793             Original package not installed
794
795
796
797           Explanation and Recommended Action
798
799               One of the components of the patch would have patched a package
800               that  is  not installed on your system. This is not necessarily
801               an error. A patch may fix a related bug for several packages.
802
803               For example, suppose a patch fixes a bug in  both  the  online-
804               backup  and  fddi  packages. If you had online-backup installed
805               but didn't have fddi installed, you would get the message :
806
807                 Package not patched:
808                 PKG=SUNWbf
809                 Original package not installed
810
811
812               This message only indicates an error if you thought the package
813               was  installed  on  your  system. If this is the case, take the
814               necessary action to install the package, backout the patch  (if
815               it installed other packages) and re-install the patch.
816
817
818
819       Message
820
821
822             Package not patched:
823             PKG=SUNxxx
824             ARCH=xxxxxxx
825             VERSION=xxxxxxx
826             Architecture mismatch
827
828
829
830           Explanation and Recommended Action
831
832               One of the components of the patch would have patched a package
833               for an architecture different from your  system.  This  is  not
834               necessarily an error. Any patch to one of the architecture-spe‐
835               cific packages might contain one element for each of the possi‐
836               ble  architectures.  For  example,  assume you are running on a
837               sun4u. If you were to install a patch to package  SUNWcar,  you
838               would see the following (or similar) messages:
839
840                 Package not patched:
841                 PKG=SUNWcar
842                 ARCH=sparc.sun4c
843                 VERSION=11.5.0,REV=2.0.18
844                 Architecture mismatch
845
846                 Package not patched:
847                 PKG=SUNWcar
848                 ARCH=sparc.sun4u
849                 VERSION=11.5.0,REV=2.0.18
850                 Architecture mismatch
851
852                 Package not patched:
853                 PKG=SUNWcar
854                 ARCH=sparc.sun4e
855                 VERSION=11.5.0,REV=2.0.18
856
857                 Package not patched:
858                 PKG=SUNWcar
859                 ARCH=sparc.sun4
860                 VERSION=11.5.0,REV=2.0.18
861                 Architecture mismatch
862
863
864               These  messages  indicate  an  error condition only if patchadd
865               does not correctly recognize your architecture.
866
867
868
869       Message
870
871
872             Package not patched:
873             PKG=SUNxxxx
874             ARCH=xxxx
875             VERSION=xxxxxxx
876             Version mismatch
877
878
879
880           Explanation and Recommended Action
881
882               The version of software to which the patch is  applied  is  not
883               installed  on  your  system.  For  example, if you were running
884               Solaris 8, and you tried to install a patch against Solaris  9,
885               you would see the following (or similar) message:
886
887                 Package not patched:
888                 PKG=SUNWcsu
889                 ARCH=sparc
890                 VERSION=10.0.2
891                 Version mismatch
892
893
894               This  message  does  not  necessarily indicate an error. If the
895               version mismatch was for a package you needed  patched,  either
896               get  the  correct  patch version or install the correct package
897               version. Then backout the patch (if necessary) and reapply.
898
899
900
901       Message
902
903
904             Re-installing Patch.
905
906
907
908           Explanation and Recommended Action
909
910               The patch has already been applied, but there is at  least  one
911               package  in  the patch that could be added. For example, if you
912               applied a patch that had both Openwindows and Answerbook compo‐
913               nents,  but  your system did not have Answerbook installed, the
914               Answerbook parts of the patch would not have been applied.  If,
915               at  a later time, you pkgadd Answerbook, you could re-apply the
916               patch, and the Answerbook components  of  the  patch  would  be
917               applied to the system.
918
919
920
921       Message
922
923
924             patchadd Interrupted.
925             patchadd is terminating.
926
927
928
929           Explanation and Recommended Action
930
931               patchadd  was  interrupted  during  execution  (usually through
932               pressing CTRL-c). patchadd will clean up its working files  and
933               exit.
934
935
936
937       Message
938
939
940             patchadd Interrupted.
941             Backing out Patch...
942
943
944
945           Explanation and Recommended Action
946
947               patchadd  was  interrupted  during  execution  (usually through
948               pressing CTRL-c). patchadd will clean  up  its  working  files,
949               backout the patch, and exit.
950
951
952

NOTES

954       To successfully install a patch to a client or server, patchadd must be
955       issued twice, once with the -R option and once with the -S option. This
956       guarantees that the patch is installed to both the /usr and root parti‐
957       tions. This is necessary if there are both /usr and  root  packages  in
958       the patch.
959
960
961       pkgadd  is invoked by patchadd and executes the installation scripts in
962       the pkg/install directory. The checkinstall script is executed with its
963       ownership  set to user install, if there is no user install then pkgadd
964       executes the checkinstall script as noaccess. The SVR4 ABI states  that
965       the checkinstall shall only be used as an information gathering script.
966       If the permissions for the checkinstall script are changed to something
967       other  than  the  initial  settings, pkgadd may not be able to open the
968       file for reading, thus causing the patch installation to abort with the
969       following error:
970
971         pkgadd: ERROR: checkinstall script did not complete successfully.
972
973
974
975
976       The  permission for the checkinstall script should not be changed. Con‐
977       tents of log file for a successfull  installation:  patchadd  redirects
978       pkgadd's  output  to the patch installation log file. For a successfull
979       installation, pkgadd will  produce  the  following  message  that  gets
980       inserted into the log file:
981
982         This appears to be an attempt to install the same architecture
983         and version of a package which is already installed. This
984         installation will attempt to overwrite this package.
985         This message does not indicate a failure, it represents the
986         correct behavior by pkgadd when a patch installs correctly.
987
988
989
990
991       This  message  does  not  indicate a failure, it represents the correct
992       behavior by pkgadd when a patch installs correctly.
993
994
995       On client server machines the patch package is not applied to  existing
996       clients or to the client root template space. Therefore, when appropri‐
997       ate, all client machines will need the  patch  applied  directly  using
998       this  same  patchadd  method  on the client. See instructions above for
999       applying patches to a client. A bug affecting a  package  utility  (for
1000       example,  pkgadd,  pkgrm,  pkgchk)  could  affect  the  reliability  of
1001       patchadd or patchrm, which use package utilities to install and backout
1002       the  patch package. It is recommended that any patch that fixes package
1003       utility problems be reviewed and, if necessary,  applied  before  other
1004       patches are applied. Existing patches are:
1005
1006       Solaris 2.5.1 Sparc Platform Edition:
1007
1008           104578
1009
1010
1011       Solaris 2.5.1 Intel Platform Edition:
1012
1013           104579
1014
1015
1016       Solaris 2.6 Sparc Platform Edition:
1017
1018           106292
1019
1020
1021       Solaris 2.6 Intel Platform Edition:
1022
1023           106293
1024
1025

WARNINGS

1027       Certain  patches are classified as "deferred activation" patches (some‐
1028       times with initial capitals, as "Deferred Activation"  patches).  Under
1029       conditions  indicated below, such patches require special treatment.  A
1030       patch's README file specifies whether that patch  is  of  the  deferred
1031       activation  variety.  (Search  on  "Deferred  Activation" in the README
1032       file.)
1033
1034
1035       If you are installing or removing a patch that uses deferred activation
1036       patching, you must check on the following:
1037
1038           o      On a system running zones, all non-global zones must be in a
1039                  halted state for adding or removing a patch.
1040
1041           o      Deferred activation patching requires the loopback file sys‐
1042                  tem  (lofs) in order to complete safely. Systems running Sun
1043                  Cluster 3.1 or Sun Cluster  3.2  are  likely  to  have  lofs
1044                  turned  off  because of restrictions on HA-NFS functionality
1045                  when lofs is enabled. Therefore, before a  deferred  activa‐
1046                  tion  patch  is installed or removed, you must re-enable the
1047                  loopback file system by commenting out the following line in
1048                  the /etc/system file:
1049
1050                    exclude:lofs
1051
1052
1053                  Then,  reboot  your  system and install or remove the patch.
1054                  After you have completed the patch operation, uncomment  the
1055                  line cited above, then reboot to resume normal operation.
1056
1057
1058
1059SunOS 5.11                        11 Dec 2007                     patchadd(1M)
Impressum