2006-03-29
Easier Solaris patch management with pca
Every so often having comments on here really pays off. A commenter on my previous entry gave me a pointer to pca (Patch Check Advanced), an actual sane patch management program for Solaris machines; if you want more reasons to take a look, see my longer comments.
One of the nice things about pca is that it led me to the
patchdiag.xref
file, which is a big cross index of all of the Solaris patches, and to
patches.sun.com in general. Patchdiag.xref
is in a crappy format but clearly it can be parsed, which means
it can be turned into XML, which can be turned into Atom feeds. I think I have a project. (Time to
learn XSLT.)
(I'm surprised Sun doesn't already have an XML version of
patchdiag.xref. It's not like they're shy about using Java for system
management applications, and Java apps usually love XML.)
So thank you, semi-anonymous commenter, for the pointer to pca.
(Possibly pca is old news to the really experienced Solaris administrators, in which case I will look sheepish.)
2006-03-23
Solaris patch exit codes and what they mean
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.)