When installing a patch, the Solaris 2.5+ patch installation procedure will execute the script "checkinstall" with uid nobody.
If any of the patch files or if any part of the path leading up to the patch directory cannot be read by nobody, an error similar to the following will appear:
patchadd . # or ./installpatch . Generating list of files to be patched... Verifying sufficient filesystem capacity (exhaustive method) ... Installing patch packages... pkgadd: ERROR: checkinstall script did not complete successfully ....
You can workaround this in two ways, one is to make sure that the user "nobody" can read all patch files and execute a "pwd" in the patch directory or add an account "install" to /etc/passwd:
install:x:0:1:installpatch braindamage:/:/bin/true
Installpatch and patchadd use "nobody" as a fallback if it cannot find the "install" user.