90 lines
4.6 KiB

.TH pkgadd 8 "" "pkgutils 5.40.8" ""
pkgadd \- install software package
\fBpkgadd [options] <package>\fP
\fBpkgadd\fP is a \fIpackage management\fP utility, which installs
a software package. A \fIpackage\fP is an archive of files (.pkg.tar.gz).
.B "\-u, \-\-upgrade"
Upgrade/replace package with the same name as <package>. This action
comprises several steps. First the contents of <package> are matched against
the INSTALL NO directives in pkgadd.conf, and against those files listed in /var/lib/pkg/db
that are NOT owned by the previously-installed version of <package>. Any file owned by the
previously-installed version is considered eligible for overwriting, unless it matches an
UPGRADE NO directive in pkgadd.conf.
At this point pkgadd has constructed a "non-install" list, a "conflicting files" list, and a "keep"
list. (The "keep" list is unique to an upgrade operation, but the other two lists also affect a
regular install operation.)
After writing the anticipated changes to the package database, \fIpkgadd\fP finishes by unpacking
the contents of <package> onto the filesystem, using the "keep" list to shield wanted files from
deletion, and the "conflicting files" list to skip the installation unless \-f is in effect. (See
the next option.) Files that were not written to the disk are preserved under /var/lib/pkg/rejected
(See the \fBCONFIGURATION\fP section for details).
.B "\-f, \-\-force"
Force installation, overwrite conflicting files. If <package> contains files
that are already on the filesystem, this option will cause all those files to
be overwritten. This option should be used with care, preferably not at all.
.B "\-r, \-\-root <altroot>"
Specify alternative installation root (default is "/"). This
should \fInot\fP be used as a way to install software into
e.g. /usr/local instead of /usr. Instead this should be used
if you want to install a package on a temporary mounted partition,
which is "owned" by another system. By using this option you not only
specify where the software should be installed, but you also
specify which package database will be used.
\fBpkgadd\fP processes spawned by \fBprt\-get install \-r <altroot>\fP will modify
the package database under <altroot>, but the preliminary steps of downloading sources
and building the requested packages can occur in a ports tree outside the <altroot> location.
.B "\-c, \-\-config <path>"
Specify an alternative configuration file (default is "/etc/pkgadd.conf",
or <altroot>/etc/pkgadd.conf if the \-r option is used to define an
alternative installation root).
.B "\-v, \-\-version"
Print version and exit.
.B "\-h, \-\-help"
Print help and exit.
\fBpkgadd\fP is configured by the file \fI/etc/pkgadd.conf\fP. This file can contain rules, that are built out of three fragments: \fIevent\fP, \fIpattern\fP and \fIaction\fP. The event describes in what kind of situation this rule applies. Currently there are two types of events: \fBUPGRADE\fP and \fBINSTALL\fP. \fBUPGRADE\fP rules are applied when a package is installed over an existing version, and \fBINSTALL\fP rules are applied in any case. The pattern is a regular expression. The action applicable to both the \fBUPGRADE\fP and \fBINSTALL\fP event is \fBYES\fP and \fBNO\fP. More than one rule of the same
event type is allowed, in which case the first rule will have the lowest priority and the last rule
will have the highest priority. Example:
UPGRADE ^etc/.*$ NO
UPGRADE ^var/log/.*$ NO
UPGRADE ^etc/X11/.*$ YES
UPGRADE ^etc/X11/XF86Config$ NO
The above example will cause pkgadd to never upgrade anything in /etc/ or /var/log/
(subdirectories included), except files in /etc/X11/ (subdirectories included),
unless it is the file /etc/X11/XF86Config.
The default rule is to upgrade/install everything, rules in this file are exceptions to that rule.
(NOTE! A \fIpattern\fP should never contain an initial "/" since you are referring to the files in the
package, not the files on the disk.)
If pkgadd finds that a specific file should not be upgraded it will install it under
The user is then free to examine/use/remove that file manually.
.B "/etc/pkgadd.conf"
Configuration file.
pkgrm(8), pkginfo(8), pkgmk(8), rejmerge(8)
pkgadd (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2017 CRUX team (
pkgadd (pkgutils) is licensed through the GNU General Public License.
Read the COPYING file for the complete license.