In previous Solaris releases, there was no way to specify a symbolic link target in the pkgmap file when creating a software package. This meant a package or patch-related symbolic link was always followed to the source of the symbolic link rather than to the target of the symbolic link when a package was added with the pkgadd command. This created problems when upgrading a package or a patch package that needed to change a symbolic link target destination to something else.
Now, the default behavior is that if a package needs to change the target of a symbolic link to something else, the target of the symbolic link and not the source of the symbolic link is inspected by the pkgadd command.
Unfortunately, this means that some packages may or may not conform to the new pkgadd behavior.
The PKG_NONABI_SYMLINKS environment variable might help you transition between the old and new pkgadd symbolic link behaviors. If this environment variable is set to true, pkgadd follows the source of the symbolic link.
Setting this variable enables a non-conforming package to revert to the old behavior if set by the administrator before adding a package with the pkgadd command.
The new pkgadd symbolic link behavior might cause an existing package to fail when added with the pkgadd command. You might see the following error message in this situation:
unable to create symbolic link to <path>
If a package doesn't install due to this problem, do the following:
If this is a Sun-supplied package, call the Resolution Center and report the non-conforming package name.
Set the PKG_NONABI_SYMLINKS environment variable and try adding the package with the pkgadd command again.
# PKG_NONABI_SYMLINKS=true # export PKG_NONABI_SYMLINKS # pkgadd pkg-name