pkgask -- store answers to a request script


   pkgask [-d device] [-p] [-q] -r response [pkg [pkg...]]


pkgask allows an administrator to store answers to an interactive package (one with a request script) or a set of packages. A set is made up of a special-purpose package, referred to as a Set Installation Package (SIP), and a collection of one or more packages that are members of the set. The SIP controls the installation of the set.

Invoking pkgask generates a response file that is then used as input at installation time. The use of this response file prevents any interaction from occurring during installation since the file already contains all of the information the package needs.

-d device
Runs the request script for a package on device. device can be (a) the full pathname to a directory (such as /var/tmp), (b) the full pathname to a device (such as /dev/rmt/* or /dev/dsk/*) [see disk(7) and tape(7)], (c) a device alias; or (d) ``"-"'' which specifies packages in datastream format read from standard input. The default device is the installation spool directory (/var/spool/pkg).

An alias is the unique name by which a device is known. (For example, the alias for a cartridge tape drive might be ctape1.) The name must be limited in length to 64 characters (DDB_MAXALIAS) and may contain only alphanumeric characters and/or any of the following special characters: underscore (``_''), dollar sign (``$''), hyphen (``-''), and period (``.''). No two devices in the database may share the same alias.

Do not give the initial prompt to the user to insert the distribution medium. All other prompts will continue normally.

Installation is performed in quiet mode. Package installation scripts that implement QUIETMODE for user input requests will require no user intervention during installation. See ``Notes''.

-r response
Identifies a file or directory, response, which should be created to contain the responses to interactions with the package's request script. The file, or directory of files, can later be used as input to the pkgadd command [see pkgadd(1M)]. When pkginst is a package, response can be a full pathname or a directory; when pkginst is a SIP, response must be a directory. For a complete description of request scripts and response files, see your system administration or software packaging guides.

A short string used to designate an abbreviated package/set name. (The term ``package instance'' is used loosely: it refers to all instantiations of pkginst, even those that do not include instance identifiers.)

To create a package name abbreviation, assign it with the PKG parameter. For example, to assign the abbreviation cmds to the Advanced Commands package, enter PKG=cmds.

If pkginst specifies a SIP, all request scripts for packages which are members of that set are run (if any) and the resulting response files are placed in the directory provided to the -r option.

To indicate all instances of a package, specify 'pkginst.*', enclosing the command line in single quotes, as shown, to prevent the shell from interpreting the * character. Use the token all to refer to all packages available on the source medium.


When pkgask runs, it creates the response file as well as the following directories:

Contains variables pertaining to the package.

Contains checksum information about the package.

Contains backups of previous versions of the package.
To install the package on another system non-interactively, you must copy all of these files and directories to the target system.

NOTE: If you overwrite any of these directories, for example, to install another package non-interactively, you will not be able to successfully remove the first package unless you restore the original directory contents first.

Exit codes

Successful completion of script.

Fatal error. Installation process is terminated at this point.

Warning or possible error condition. Installation will continue. A warning message will be displayed at the time of completion.

Script was interrupted and possibly left unfinished. Installation terminates at this point.

Script was suspended (administration). Installation terminates at this point.

Script was suspended (interaction was required). Installation terminates at this point.

System should be rebooted when installation of all selected packages is completed. (This value should be added to one of the single-digit exit codes described above.)

The system should be rebooted immediately upon completing installation of the current package. (This value should be added to one of the single-digit exit codes described above.)

No package was selected for the set.

Internal error.


default spool directory

language-specific message file [See LANG on environ(5).]


compver(4), copyright(4), depend(4), disk(7), installf(1M), pkgadd(1M), pkgchk(1M), pkginfo(1), pkginfo(4), pkgmap(4), pkgmk(1), pkgparam(1), pkgproto(1), pkgtrans(1), pkgrm(1M), removef(1M), setinfo(4), space(4), tape(7)


The following is an example of implementing QUIETMODE in package installation scripts. This code, included in a package's request, preinstall, postinstall, preremove, or postremove scripts, will not be executed when the -q option is used:
   if [ "$QUIETMODE" = "false" ]
           echo "Do you want to continue?"
   	read RESPONSE

You can use the -r option to indicate a directory name as well as a filename. The directory name is used to create numerous response files, each sharing the name of the package with which it should be associated. This is useful, for example, when you add multiple interactive packages with one invocation of pkgadd. Each package needs a response file. To create multiple response files with the same name as the package instance, name the directory in which the files should be created and supply multiple instance names with the pkgask command. When installing the packages, you can identify this directory to the pkgadd command.

When invoked with no pkginst specified on the command line, pkgask only displays the names of sets if at least one SIP exists on the device. Thus, if you have packages which are not members of sets, they can be referenced only if their pkginst names are provided on the command line.

© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004