Application Packaging Developer's Guide

The postinstall Installation Script

In this example, all the script needs to do is run the add_drv command.

# Postinstallation script for SUNWsst
# This does not apply to a client.
if [$PKG_INSTALL_ROOT = "/" -o -z $PKG_INSTALL_ROOT]; then
   BASEDIR=""; export BASEDIR
   /usr/sbin/add_drv sst
   if [ $STATUS -eq 0 ]
	     exit 20
	     exit 2
   echo "This cannot be installed onto a client."
   exit 2

Note -

This example will probably not work correctly if you install it onto a diskless client from a server, since there is no reliable way to run the add_drv and rem_drv commands on that client from the pkgadd command executing on the server. You may be better off splitting the package on the root (/) and /usr boundaries.

The add_drv command uses the BASEDIR parameter, so the script has to unset BASEDIR before running the command, and restore it afterwards.

One of the actions of the add_drv command is to run devlinks, which uses the entry placed in /etc/ by the sed class script to create the /dev entries for the driver.

The exit code from the postinstall script is significant. The exit code 20 tells the pkgadd command to tell the user to reboot the system (necessary after installing a driver), and the exit code 2 tells the pkgadd command to tell the user that the installation partially failed.