pkgask(1M)
pkgask --
store answers to a request script
Synopsis
pkgask [-d device] [-p] [-q] -r response [pkg [pkg...]]
Description
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.
-p-
Do not give the initial prompt to the user to insert the distribution medium.
All other prompts will continue normally.
-q-
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.
pkginst-
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.
Usage
When pkgask runs, it creates the response
file as well as the following directories:
/ptfvars-
Contains variables pertaining to the package.
/fileinfo-
Contains checksum information about the package.
/oldfiles-
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
0-
Successful completion of script.
1-
Fatal error.
Installation process is terminated at this point.
2-
Warning or possible error condition.
Installation will continue.
A warning
message will be displayed at the time of completion.
3-
Script was interrupted and possibly left unfinished.
Installation terminates
at this point.
4-
Script was suspended (administration). Installation terminates at this point.
5-
Script was suspended (interaction was required). Installation terminates at this point.
10-
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.)
20-
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.)
77-
No package was selected for the set.
99-
Internal error.
Files
/var/spool/pkg-
default spool directory
/usr/lib/locale/locale/LC_MESSAGES/uxpkg-
language-specific message file [See LANG on
environ(5).]
References
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)
Notes
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" ]
then
echo
echo "Do you want to continue?"
echo
read RESPONSE
fi
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