Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
pkg_add(1)			    FreeBSD			    pkg_add(1)

       pkg_add - a utility for installing software package distributions.

       pkg_add [options] pkg-name [.. pkg-name]

       The pkg_add command is used to extract packages that have been previ-
       ously created with the pkg_create command.

       The following command line options are supported.

       -v     Turns on verbose output.	Optional.

       -I     If an installation script	exists for a given package, do not ex-
	      ecute it.	 Optional.

       -n     Don't actually install a package,	just report the	steps that
	      would be taken if	it was.	 Optional.

       -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!	Optional.

       -p prefix
	      Sets 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 de-
	      fault will be replaced, since 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 MASTER and SLAVE mode (see -M and	-S options).

       -t template
	      Use template as the input	to mktemp(3).  By default, this	is the
	      string /tmp/instmp.XXXXXX	, but it may be	necessary to override
	      it in the	situation where	space in your /tmp directory is	lim-
	      ited.  Be	sure to	leave some number of `X' characters for	mk-
	      temp(3) to fill in with a	unique ID.  Optional.

       -M     Run in MASTER mode.  This	is a very specialized mode for running
	      pkg_add and is meant to be run in	conjunction with SLAVE mode.
	      When run in this mode, pkg_add does no work beyond extracting
	      the package into a temporary staging area	(see -t	option), read-
	      ing 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 sed(1).  When used in conjunction	with SLAVE
	      mode, it allows you to make radical changes to the package
	      structure	before acting on its contents.

       -S     Run in SLAVE mode.  This is a very specialized mode for running
	      pkg_add and is meant to be run in	conjunction with MASTER	mode.
	      When run in this mode, pkg_add expects the release contents to
	      be already extracted and waiting in the staging area, the	loca-
	      tion 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.

       pkg_add is fairly simple.  It simply extracts the requested packages
       into a "staging area" directory and then	performs the following steps:

       If the package contains a require file (see pkg_create ), then this is
       executed	first with the flags

       <script>	pkg-name INSTALL

       to see whether or not installation should continue (a non-zero exit
       status means no).

       If an install script exists for the package, it is then executed	as

       First, before installing	files in the data set, the install script is
       called with the flags

       <script>	pkg-name PRE-INSTALL

       Where pkg-name is the name of the package in question and 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	neces-
       sary) from the staging area into	their new homes	and the	install	script
       is then executed	a second time with the flags

       <script>	pkg-name POST-INSTALL

       This all	allows you to write an install script that does	"before	and
       after" actions.

       All the scripts are called with the environment variable	PKG_PREFIX set
       to the installation prefix (see the -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 -p when pkg_add is run.

       After installation is complete, a copy of the packing list, in addition
       to any deinstall	script the package might have, is copied into
       /var/db/pkg/<pkg-name> for subsequent possible use by pkg-delete.  Fi-
       nally, the staging area is deleted and the program terminates.

       Sure to be some.

       pkg_create(1), pkg_info(1), pkg_delete(1),

       Jordan Hubbard

				 July 18, 1993			    pkg_add(1)


Want to link to this manual page? Use this URL:

home | help