Solaris patch exit codes and what they mean

March 23, 2006

This isn't my work; it's from a comment on an earlier entry. I'm repeating it here partly to have it handy, and partly because DWiki mangled the nice clear plain ASCII formatting of the original. So thank you, mostly anonymous commenter.

The following are the explanation of patchdd script exit codes:

0 No error
1 Usage error
2 Attempt to apply a patch that's already been applied
3 Effective UID is not root
4 Attempt to save original files failed
5 pkgadd failed
6 Patch is obsoleted
7 Invalid package directory
8 Attempting to patch a package that is not installed
9 Cannot access /usr/sbin/pkgadd (client problem)
10 Package validation errors
11 Error adding patch to root template
12 Patch script terminated due to signal
13 Symbolic link included in patch
14 NOT USED
15 The prepatch script had a return code other than 0.
16 The postpatch script had a return code other than 0.
17 Mismatch of the -d option between a previous patch install and the current one.
18 Not enough space in the file systems that are targets of the patch.
19 $SOFTINFO/INST_RELEASE file not found
20 A direct instance patch was required but not found
21 The required patches have not been installed on the manager
22 A progressive instance patch was required but not found
23 A restricted patch is already applied to the package
24 An incompatible patch is applied
25 A required patch is not applied
26 The user specified backout data can't be found
27 The relative directory supplied can't be found
28 A pkginfo file is corrupt or missing
29 Bad patch ID format
30 Dryrun failure(s)
31 Path given for -C option is invalid
32 Must be running Solaris 2.6 or greater
33 Bad formatted patch file or patch file not found
34 Incorrect patch spool directory
35 Later revision already installed
36 Cannot create safe temporary directory
37 Illegal backout directory specified
38 A prepatch, prePatch or a postpatch script could not be executed

Why this information is not in the CLUSTER_README I don't know. It appears to be in some patch cluster READMEs, but not the Solaris 9 recommended patch set one. Yet another Sun mystery, I suppose.

(PS: the formatting on this may not look so great in syndication feeds, including LiveJournal. Explaining the mess of why requires a larger rant than this margin has space for.)


Comments on this page:

From 70.53.120.146 at 2006-03-23 08:23:45:

I understand that the return codes are not documented because they might change.

From 128.100.49.60 at 2006-03-23 09:51:12:

There are a few more codes, you can see them all in Solaris 9 with "more /usr/sbin/patchadd"

In Solaris 10, patchadd is no longer a script and the exit codes have changed, but you still have a "-t" option to use the Solaris 9 codes, I guess for those who have scripted patchadd and rely on the old codes.

Patch management still needs a lot of work in Solaris. The best tool I've seen so far to manage patches on any version of Solaris is PCA, a perl script: http://www.par.univie.ac.at/solaris/pca/

Written on 23 March 2006.
« Google Desktop and conditional GET (part 2)
Atom versus RSS »

Page tools: View Source, View Normal, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Thu Mar 23 01:03:55 2006
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.