5edd12d270
in the packing list, or the argument to -p if it is specified, before the requirements/installation/deinstallation scripts are called. This enables the scripts to be written to work on the final installation destination, even if the user uses -p to override the package's default.
204 lines
5.1 KiB
Groff
204 lines
5.1 KiB
Groff
.\"
|
|
.\" FreeBSD install - a package for the installation and maintainance
|
|
.\" of non-core utilities.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" Jordan K. Hubbard
|
|
.\"
|
|
.\"
|
|
.\" @(#)pkg_add.1
|
|
.\"
|
|
.TH pkg_add 1 "July 18, 1993" "" "FreeBSD"
|
|
|
|
.SH NAME
|
|
pkg_add - a utility for installing software package distributions.
|
|
.SH SYNOPSIS
|
|
.na
|
|
.B pkg_add
|
|
.RB [options]
|
|
.RB "pkg-name\ [.. pkg-name]"
|
|
|
|
.SH DESCRIPTION
|
|
The
|
|
.B pkg_add
|
|
command is used to extract packages that have been previously created
|
|
with the
|
|
.B pkg_create
|
|
command.
|
|
|
|
.SH OPTIONS
|
|
.TP
|
|
The following command line options are supported.
|
|
.TP
|
|
.B \-v
|
|
Turns on verbose output.
|
|
.B "Optional."
|
|
.TP
|
|
.B \-I
|
|
If an installation script exists for a given package, do not execute it.
|
|
.B "Optional."
|
|
.TP
|
|
.B \-n
|
|
Don't actually install a package, just report the steps that
|
|
would be taken if it was.
|
|
.B "Optional."
|
|
.TP
|
|
.B \-R
|
|
Do not record the installation of a package. This means
|
|
that you cannot deinstall it later, so only use this option if
|
|
you know what you are doing!
|
|
.B "Optional."
|
|
.TP
|
|
.BI "\-p\ " prefix
|
|
Sets
|
|
.I prefix
|
|
as the directory in which to extract files from a package.
|
|
If a package has set its default directory, it will be overridden
|
|
by this flag. Note that only the first directory default will
|
|
be replaced, since
|
|
.B pkg_add
|
|
has no way of knowing which directory settings are relative and
|
|
which are absolute. It is rare, in any case, that more than one
|
|
directory transition is made, but when such is the case then you
|
|
may wish to look into the use of
|
|
.B MASTER
|
|
and
|
|
.B SLAVE
|
|
mode (see
|
|
.B \-M
|
|
and
|
|
.B \-S
|
|
options).
|
|
.B "Optional."
|
|
.TP
|
|
.BI "\-t\ " template
|
|
Use
|
|
.I template
|
|
as the input to mktemp(3). By default, this is the string
|
|
.B /tmp/instmp.XXXXXX
|
|
, but it may be necessary to override it in the situation where
|
|
space in your
|
|
.B /tmp
|
|
directory is limited. Be sure to leave some number of `X' characters
|
|
for mktemp(3) to fill in with a unique ID.
|
|
.B "Optional."
|
|
.TP
|
|
.B \-M
|
|
Run in
|
|
.B MASTER
|
|
mode. This is a very specialized mode for running
|
|
.B pkg_add
|
|
and is meant to be run in conjunction with
|
|
.B SLAVE
|
|
mode. When run in this mode,
|
|
.B pkg_add
|
|
does no work beyond extracting the package into a temporary staging
|
|
area (see
|
|
.B \-t
|
|
option), reading in the packing list, and then dumping it (prefaced by
|
|
the current staging area) to stdout where it may be filtered by a
|
|
program such as
|
|
.B sed(1).
|
|
When used in conjunction with
|
|
.B SLAVE
|
|
mode, it allows you to make radical changes to the package structure
|
|
before acting on its contents.
|
|
.TP
|
|
.B \-S
|
|
Run in
|
|
.B SLAVE
|
|
mode. This is a very specialized mode for running
|
|
.B pkg_add
|
|
and is meant to be run in conjunction with
|
|
.B MASTER
|
|
mode. When run in this mode,
|
|
.B pkg_add
|
|
expects the release contents to be already extracted and waiting
|
|
in the staging area, the location of which is read as a string
|
|
from stdin. The complete packing list is also read from stdin,
|
|
and the contents then acted on as normal.
|
|
.PP
|
|
.SH "TECHNICAL DETAILS"
|
|
.B
|
|
pkg_add
|
|
is fairly simple. It simply extracts the requested packages into
|
|
a "staging area" directory and then performs the following steps:
|
|
.PP
|
|
If the package contains a
|
|
.B require
|
|
file (see
|
|
.B pkg_create
|
|
), then this is executed first with the flags
|
|
.PP
|
|
.B <script>
|
|
.I pkg-name INSTALL
|
|
.PP
|
|
to see whether or not installation should
|
|
continue (a non-zero exit status means no).
|
|
.PP
|
|
If an
|
|
.B install
|
|
script exists for the package, it is then executed as follows:
|
|
.PP
|
|
First, before installing files in the data set, the
|
|
.B install
|
|
script is called with the flags
|
|
.PP
|
|
.B <script>
|
|
.I pkg-name PRE-INSTALL
|
|
.PP
|
|
Where
|
|
.I pkg-name
|
|
is the name of the package in question and
|
|
.I PRE-INSTALL
|
|
is a keyword denoting that this is the "pre installation" pass.
|
|
Using the packing list as a guide, files are then moved (or copied,
|
|
as necessary) from the staging area into their new homes and the
|
|
.B install
|
|
script is then executed a second time with the flags
|
|
.PP
|
|
.B <script>
|
|
.I pkg-name POST-INSTALL
|
|
.PP
|
|
This all allows you to write an
|
|
.B install
|
|
script that does "before and after" actions.
|
|
.PP
|
|
All the scripts are called with the environment variable
|
|
.B PKG_PREFIX
|
|
set to the installation prefix (see the
|
|
.B -p
|
|
option above). This allows a package author to write a script
|
|
that reliably performs some action on the directory where the package
|
|
is installed, even if the user might change it by
|
|
.B -p
|
|
when
|
|
.B pkg_add
|
|
is run.
|
|
.PP
|
|
After installation is complete, a copy of the packing list, in addition
|
|
to any
|
|
.B deinstall
|
|
script the package might have, is copied into /var/db/pkg/<pkg-name>
|
|
for subsequent possible use by
|
|
.B pkg-delete.
|
|
Finally, the staging area is deleted and the program terminates.
|
|
.PP
|
|
.SH BUGS
|
|
Sure to be some.
|
|
.SH "SEE ALSO"
|
|
.BR pkg_create "(" 1 "),"
|
|
.BR pkg_info "(" 1 "),"
|
|
.BR pkg_delete "(" 1 "),"
|
|
.SH AUTHORS
|
|
Jordan Hubbard
|
|
|